日期:2014-05-16  浏览次数:52854 次

spring mvc 3.x输出xml或者json
方式一:
参考:
[url]
http://www.mkyong.com/spring-mvc/spring-3-mvc-and-xml-example/[/url]
满足以下条件时会自动将对象转换为xml格式进行输出:

引用

As i know, when Spring see

1. Object annotated with JAXB
2. JAXB library existed in classpath
3. “mvc:annotation-driven” is enabled
4. Return method annotated with @ResponseBody

It will handle the conversion automatically.


方式二(建议使用,可以和json等方式同时开启):
    


Xml代码 
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
          <property name="mediaTypes">
               <map>
                    <entry key="xml" value="application/xml"/>
                    <entry key="json" value="application/json"/>
               </map>
          </property>
          <property name="defaultViews">
               <list>
                    <bean class="org.springframework.web.servlet.view.xml.MarshallingView">
                         <property name="marshaller">
                              <bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
                                   <property name="classesToBeBound">
                                        <list>
                                             <value>cn.flysnowxf.resp.Result</value>
                                        </list>
                                   </property>
                              </bean>
                         </property>
                    </bean>
                    <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
               </list>
          </property>
     </bean>

当请求accept=application/xml或者url以.xml结尾,将选择xml view进行处理,这里配置的xml解析器是Jaxb2Marshaller。
这个要导入 xstream

当请求accept=application/json或者url以.json结尾,将选择json view进行处理,这里配置的json解析器是MappingJacksonJsonView。
这个要导入jackson-all-1.9.5(当前releas版本)