Spring MVC根据请求后缀返回不同数据格式
来源:互联网 发布:网络搏彩 编辑:程序博客网 时间:2024/06/10 03:49
Spring MVC通过ContentNegotiatingViewResolver实现了根据不同请求后缀返回不同的数据格式,本文以velocity视图解析器为例。配置信息如下:(具体配置说明直接在配置文件注释中体现)
<!-- 自动扫描@Controller注入为bean --> <context:component-scan base-package="com.demo.controller"/> <!-- 模板信息设置 --> <bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> <property name="resourceLoaderPath" value="/WEB-INF/views/" /> <!-- 配置模板路径 --> <property name="velocityProperties"> <props> <prop key="input.encoding">UTF-8</prop><!-- 指定模板引擎进行模板处理的编码 --> <prop key="output.encoding">UTF-8</prop><!-- 指定输出流的编码 --> </props> </property> </bean> <!-- 设置视图解析器 --> <!-- 这里配置的是velocity视图解析器,其他解析器配置都类似,这里不做过多补充 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.velocity.VelocityView" /> <property name="contentType" value="text/html;charset=UTF-8" /> <property name="dateToolAttribute" value="dateTool" /> <property name="numberToolAttribute" value="numberTool" /> <property name="exposeRequestAttributes" value="true" /> <property name="exposeSessionAttributes" value="true" /> </bean> <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <!-- 配置请求类型 --> <property name="mediaTypes"> <value> html=text/html json=application/json </value> </property> <property name="defaultContentType" value="text/html"/> </bean> <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="order" value="0"/> <property name="contentNegotiationManager" ref="contentNegotiationManager"/> <!-- 解析器配置直接引用上面配置好的解析器ID --> <property name="viewResolvers" ref="viewResolver" /> <!-- 提供fastJson 视图 --> <property name="defaultViews"> <list> <bean class="com.alibaba.fastjson.support.spring.FastJsonJsonView"> <property name="charset" value="UTF-8"/> </bean> </list> </property> </bean> <!-- 添加注解驱动 --> <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/> <!-- 设置转换器 --> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"/>
以上即为解析器的核心配置,关于SpringMVC的其他配置不在本文讨论范畴,暂不做详细说明。通过如上配置,我们就可以在控制器中对同意个RequestMapping进行不同数据格式返回的定义,具体代码如下:
@RequestMapping({"/test.html","/test.json"}) public String test(Model model){ model.addAttribute("test","测试数据"); return "index"; }
通过在RequestMapping中定义不同的请求路径就能够实现不同数据返回。
0 0
- Spring MVC根据请求后缀返回不同数据格式
- spring mvc ContentNegotiatingViewResolver 根据路径后缀,选择不同视图
- Spring mvc ContentNegotiatingViewResolver 根据路径后缀,选择不同视图
- spring mvc 返回json数据格式
- spring mvc 针对不同请求头返回不同的视图
- Spring MVC ContentNegotiation内容协商机制(一个请求路径返回多种数据格式)源码解析
- Spring mvc 将请求后缀改成.htm 后ajax无法返回json的问题
- Spring MVC interceptor拦截指定后缀请求
- 网络请求返回数据格式
- Spring MVC 3.2.2 +easyui 返回JSON数据格式
- spring mvc4.2 ContentNegotiatingViewResolver 根据路径后缀,选择不同视图
- Spring MVC 根据不同环境加载不同的配置文件
- spring mvc ajax 请求返回json数据
- spring mvc 请求返回json数据
- Jmeter-如何根据不同返回类型创建https请求
- 如何让 Spring MVC Controller 的同一个 URL 请求,根据逻辑判断返回 JSON 或者 HTML 视图?
- spring boot 返回xml数据格式
- spring mvc中返回ModelAndView后执行ajax异步请求
- JPA之"could not initialize proxy - no Session"的异常解决
- Spring中ApplicationContext和beanfactory区别
- html无缝滚动
- linux $# $1 $2 $@ $* $$ $0 $?
- Ajax提交多个表单,简化代码
- Spring MVC根据请求后缀返回不同数据格式
- hosts文件的修改方法,及如何获得最新有效的IP地址的方法
- CAS单点登录客户端--C++版
- sqlserver2008导出表数据和表结构sql文件
- runtime从入门到精通(九)—— 万能界面跳转
- 自定义控件三部曲之绘图篇(九)——Paint之setColorFilter
- #Day5 C++
- Form表单请求
- LCD的一些基础知识