1.首先我们要在spring-mvc中配置
<!--内容协商-->
<bean name="contentNegotiatingViewResolver" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
<bean class="org.springframework.web.servlet.view.xml.MappingJackson2XmlView"/>
</list>
</property>
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
</list>
</property>
</bean>
2.什么是ContentNegotiatingViewResolver
现spring完成内容协商(content negotiation)的工作是由ContentNegotiatingViewResolver来完成的.它的工作模式支持我上面讲的三种,
ContentNegotiatingViewResolver是根据客户提交的MimeType(如 text/html,application/xml)来跟服务端的一组viewResover的MimeType相比较,如果符合,即返回viewResover的数据.
3.什么是:MappingJackson2JsonView
InternalResourceViewResolver 用来渲染jsp视图,MappingJackson2JsonView 用来解析json请求就行。
只要你把访问的地址加上 .json 后缀,或者把 请求头 Accept 设置成 application/json (可直接使用jquery的$.getJson()) 就能匹配到默认视图MappingJackson2JsonView 。
4.什么是:InternalResourceViewResolver
InternalResourceViewResolver会将视图名解析为JSP文 件。另外,如果在你的JSP页面中使用了JSP标准标签库 (JavaServer Pages Standard Tag Library,JSTL)的 话,InternalResourceViewResolver能够将视图名解析为 JstlView形式的JSP文件,从而将JSTL本地化和资源bundle变量暴 露给JSTL的格式化(formatting)和信息(message)标签
5.controller请求接口
@GetMapping("/login")
public String login(Model model) {
model.addAttribute("result", new DefaultResult(ResultCode.SUCCESS));
return "login";
}
6.结果图