XML nesnesini Java nesnesine dönüştürmek için Apache Digest http://commons.apache.org/digester/'u kullanabilirsiniz. İlkbahar kendi içinde kendini kullanıyor.
Güncelleştirme Bu yeni özellik hakkında Spring 3.0'teki bilgilerden haberdar değildim. Seni yanlış anladığım için özür dilerim. Hızlı test yazdım ve yapmanız gereken bu.
1) ViewResoler ve MessageConverter'ı -servlet.xml dosyasında kurun. Benim testte bu Java sınıfına
@XmlRootElement
public class Person {
private String name;
private int age;
private String address;
/**
* @return the name
*/
@XmlElement
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the age
*/
@XmlElement
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
}
/**
* @return the address
*/
@XmlElement
public String getAddress() {
return address;
}
/**
* @param address the address to set
*/
public void setAddress(String address) {
this.address = address;
}
}
3)
@Controller
public class RestController {
@RequestMapping(value = "/person", method = RequestMethod.PUT)
public ModelMap addPerson(@RequestBody Person newPerson) {
System.out.println("new person: " + newPerson);
return new ModelMap(newPerson);
}
}
Umut bu gibi Kontrolör sınıfa haritalama açıklama ekleyin içine XML yapısı ek açıklama ekleme) bu
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
<bean id="person" class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="contentType" value="application/xml"/>
<property name="marshaller" ref="marshaller"/>
</bean>
<oxm:jaxb2-marshaller id="marshaller">
<oxm:class-to-be-bound name="com.solotionsspring.test.rest.model.Person"/>
</oxm:jaxb2-marshaller>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="marshallingHttpMessageConverter"/>
</list>
</property>
</bean>
<bean id="marshallingHttpMessageConverter"
class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
<property name="marshaller" ref="marshaller" />
<property name="unmarshaller" ref="marshaller" />
</bean>
2 gibi görünüyor sana yardım edeceğim.
Bağlantıyı aldığınız için teşekkürler .... belki de xml dönüştüren bir kütüphane aramıyordum. Xml'in bir nesneye dönüştürülmesi gereken Spring mvc'in nasıl yapıldığını merak ediyordum. Nesne, istek gövdesinde ne POST olursa olsun boştur. – brock
Tam olarak aradığım şey bu. Sanırım çeviriciyi kaçırıyordum. @RequestBody ile ilgili belgeleri gördüm, ancak bunun ne için kullanılması gerektiğinden emin değildi. Yardımın için teşekkürler!! – brock