对JSON视图和XML等视图的支持
源代码
https://download.csdn.net/download/qzc70919700/19931167
一、导入jar包
二、配置springmvc.xml支持多视图
<!-- 添加对多视图的支持 -->
<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>
</map>
</property>
</bean>
</property>
<!-- 指定默认视图 -->
<property name="defaultViews">
<!-- 支持多个视图 -->
<list>
<!-- 对josn格式视图支持 -->
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"></bean>
<!-- xml格式视图支持 -->
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>demo.mvc.entity.User</value>
</list>
</property>
</bean>
</constructor-arg>
</bean>
</list>
</property>
</bean>
三、Controller代码
package demo.mvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import demo.mvc.entity.User;
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping("t1")
public User test1() {
User user = new User("张三", "男", 18);
return user;
}
}
四、浏览器访问
约定rest目录下所有以json和xml扩展名都支持相应的视图
访问xml视图
在对xml视图的支持时,需要对实体添加@XmlRootElement注解,例如:
@XmlRootElement
public class User {
private String username;
private String sex;
private int age;
//省略getter和setter方法
}
测试:
http://localhost:8080/mvc_demo06/rest/test/t1.xml
访问json视图
测试: