springmvc提供对多种视图的支持,json、xml、excel、pdf、等等
1、首先在springmvc配置文件中加入相关配置:
<!-- springmvc多视图支持 -->
<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="contentNegotiationManager">
<!-- 配置支持的媒体类型 -->
<bean
class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="mediaTypes">
<map>
<entry key="json" value="application/json"></entry>
<entry key="xml" value="application/xml"></entry>
<!-- 如果还需要支持更多的媒体类型如pdf excel等,需要导入指定jar包 -->
</map>
</property>
</bean>
</property>
<!--配置默认视图 -->
<property name="defaultViews">
<list>
<!-- 对json视图的支持 -->
<bean
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
<!-- 对xml视图的支持 需要导入spring 中的oxm jar包 spring-oxm-3.2.0.RELEASE.jar -->
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<!-- 填xml需要转换的javabean对象,可以是多个 -->
<!-- 此外需要在User对象加注解 @XMLRootElement 需要jdk1.6+-->
<value>cn.zn.domain.User</value>
</list>
</property>
</bean>
</constructor-arg>
</bean>
</list>
</property>
</bean>
2、需要导入spring jar包 spring-oxm-3.2.0.RELEASE.jar
3、我们在Controller中给jsp页面返回一个对象
@RequestMapping("multiView")
public User multiView(){
User u1 = new User();
u1.setUsername("zn_zy");
u1.setSex("male");
u1.setAddress("山东");
u1.setBirthday(new Date());
u1.setId(123456);
return u1;
}
4、当我们访问 multiView.json 时,jsp会把该对象转换成json格式。访问mutiView.xml时同理。