Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建一个restful方法,该方法接受发布的xml并创建一个实体_Java_Spring_Rest_Spring Mvc - Fatal编程技术网

Java 创建一个restful方法,该方法接受发布的xml并创建一个实体

Java 创建一个restful方法,该方法接受发布的xml并创建一个实体,java,spring,rest,spring-mvc,Java,Spring,Rest,Spring Mvc,如何获取如下所示的xml: <request> <User> <name>name value</name> <age>13</age> </User> </request> 有什么简单的事情我可以做,或者我必须手动解析xml吗 我使用的是SpringMVC,这是一种发布xml的方法。您可以使用Digest。 它将把XML元素绑定到POJO。 以下是完整的教程: 您的控制器方

如何获取如下所示的xml:

<request>
  <User>
    <name>name value</name>
    <age>13</age>
  </User>
</request>
有什么简单的事情我可以做,或者我必须手动解析xml吗

我使用的是SpringMVC,这是一种发布xml的方法。

您可以使用Digest。 它将把XML元素绑定到POJO。 以下是完整的教程:

您的控制器方法应采用类型为
User
的参数,该参数带有注释。然后,您需要使用适当的封送拆收器/解封送拆收器配置。一个直接来自参考指南的示例:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
      <util:list id="beanList">
        <ref bean="stringHttpMessageConverter"/>
        <ref bean="marshallingHttpMessageConverter"/>
      </util:list>
    </property
</bean>

<bean id="stringHttpMessageConverter" 
       class="org.springframework.http.converter.StringHttpMessageConverter"/>

<bean id="marshallingHttpMessageConverter" 
      class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
  <property name="marshaller" ref="castorMarshaller" />
  <property name="unmarshaller" ref="castorMarshaller" />
</bean>

<bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller"/>


我需要一个更具体的例子:)上面的配置设置会处理我所有的模型/实体吗?是的。就这样。当然,如果选择不同的编组库,情况会有所不同。Spring支持多个应用程序。看见Castor和XStream将处理您向其抛出的任何POJO。我不确定Jibx和XmlBeans。JAXB在任何要处理的类上都至少需要@XmlRootElement。Jersey使用JAXB开箱即用。我们可以使用注释来进行设置吗?@AllanRuin:如果你是说使用Spring注释与XML配置,那么当然可以。两者完全可以互换。
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
      <util:list id="beanList">
        <ref bean="stringHttpMessageConverter"/>
        <ref bean="marshallingHttpMessageConverter"/>
      </util:list>
    </property
</bean>

<bean id="stringHttpMessageConverter" 
       class="org.springframework.http.converter.StringHttpMessageConverter"/>

<bean id="marshallingHttpMessageConverter" 
      class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
  <property name="marshaller" ref="castorMarshaller" />
  <property name="unmarshaller" ref="castorMarshaller" />
</bean>

<bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller"/>