SpringMVC系列教程——11多视图配置
上一篇:SpringMVC系列教程——10接收与响应json数据格式
SpringMVC
多视图是一个方法,它可以返回json/xml
等格式的数据,为实现这样的功能我们需要导入jar包。
链接:https://pan.baidu.com/s/1jjPHX44QzUouMfNQfFT9xQ
提取码:eeb8
导入jar包后,我们需要继续在DispatcherServlet-servlet.xml
里面配置下面多视图的配置。
<!--配置多视图,既可以返回JSON也可以返回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"/>
<!-- xml格式视图支持 -->
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>domain.Student</value>
</list>
</property>
</bean>
</constructor-arg>
</bean>
</list>
</property>
</bean>
我们用下面这个方法来演示:
@RequestMapping("/get")
public Student get(){
Student student = new Student();
student.setName("jack");
student.setNumber(123456);
System.out.println(student);
return student;
}
上面配置完了在返回的时候只支持json
,而不支持xml
,于是在返回的Student
类里面配置下面注解。
接下来我们访问:http://localhost:8080/stu/get.json
这里出现了资源不存在的现象,我最后发现是由于在web.xml
里面的虚拟路径配置导致的。
我们修改为(当然修改后我们前面文章讲的路径访问仍然是可以的
):
再次访问:http://localhost:8080/stu/get.json
访问:http://localhost:8080/stu/get.xml
到此为止我们的SpringMVC教程就结束了,之后我会抽空继续写源码解读的文章,到时候继续更新。😄
SpringMVC还有一篇拦截器SpringMVC拦截器,有兴趣可以看一下
上一篇:SpringMVC系列教程——10接收与响应json数据格式