spring MVC 3.1 注解:@ResponseBody 返回json数据
来源:互联网 发布:袜子在淘宝哪个类目 编辑:程序博客网 时间:2024/04/27 20:32
pring mvc如何返回json 数据的,大概有如下几种:
Spring MVC 3.0 返回JSON数据的方法
1. 直接 PrintWriter 输出
2. 使用 JSP 视图
3. 使用Spring内置的支持
以下为3.1之前的配置:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /> </list> </property></bean>
重点来了!
以下为3.1的配置:
spring mvc 3.1之后使用RequestMappingHandlerMapping和RequestMappingHandlerAdapter
替代了原有的DefaultMethodHandlerMapping和 AnnotationMethodHandlerAdapter ,
所以,3.1的返回json配置可以使用如下配置:
<beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"p:ignoreDefaultModelOnRedirect="true" ><property name="messageConverters"><list><bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/></list></property></bean>
// WEB-INF/lib 中添加
jackson-mapper-asl-1.6.4.jar
jackson-core-asl-1.6.4.jar
// Controller 中使用:@ResponseBody 标注方法,该方法返回 Java对象(支持复杂对象),
如:
public @ResponseBody User getUser(User u){return u;}
MappingJacksonHttpMessageConverter 会将对象转换为 JSON 输出
注意:当springMVC-servlet.xml中使用<mvc:annotation-driven />时,如果是3.1之前已经默认注入AnnotationMethodHandlerAdapter,3.1之后默认注入RequestMappingHandlerAdapter只需加上上面提及的jar包即可!
注意:默认情况下MappingJacksonHttpMessageConverter 会设置content为application/json,在IE9下返回会出现提示下载的现象,出现这种情况可以手动指定头信息为"text/html",或者"*/*"(所有,不确定就设这个)
如果是手动注入RequestMappingHandlerAdapter 可以这样设置
<beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"p:ignoreDefaultModelOnRedirect="true"><property name="messageConverters"><list><beanclass="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"p:supportedMediaTypes="*/*" /></list></property></bean>
如果是采用mvc:annotation-driven标签 可以这样注入信息
<mvc:annotation-driven><mvc:message-converters register-defaults="true"><beanclass="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"p:supportedMediaTypes="*/*" /></mvc:message-converters></mvc:annotation-driven>4. 自定义
// 配置 BeanNameViewResolver<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"> <property name="order" value="1" /></bean><bean id="jsonView" class="test.TestJsonView" />
// 实现 TestJsonViewpublic class TestJsonView extends AbstractView { @Override protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { JsonBuilder jb = new JsonBuilder(); PrintWriter out = response.getWriter(); out.print(jb.encode(model)); }}
// Controller 中可以这样写:ModelAndView mav = new ModelAndView("jsonView");// mav.addObject ...return mav;
来源:http://yjflfliulei.iteye.com/blog/1755134
- spring MVC 3.1 注解:@ResponseBody 返回json数据
- spring MVC 3.1 注解:@ResponseBody 返回json数据
- Spring MVC 利用 @ResponseBody 注解返回JSON
- 解决spring-mvc @responseBody注解返回json 乱码问题
- 解决spring-mvc @responseBody注解返回json 乱码问题
- 解决spring-mvc @responseBody注解返回json 乱码问题
- 解决spring-mvc @responseBody注解返回json 乱码问题
- 解决spring-mvc @responseBody注解返回json 乱码问题
- 解决spring-mvc @responseBody注解返回json 乱码问题
- 解决spring-mvc @responseBody注解返回json 乱码问题
- Spring MVC @ResponseBody返回Json
- spring mvc返回json格式疑问@ResponseBody
- spring mvc返回json格式疑问@ResponseBody
- spring mvc返回json格式@ResponseBody
- Spring MVC的@ResponseBody返回JSON串
- Spring MVC的@ResponseBody返回JSON串
- Spring MVC的@ResponseBody返回JSON串
- Spring MVC的@ResponseBody返回JSON串
- linux svn
- ubuntu和win7 64双系统 安装
- ARRAYLIST VECTOR LINKEDLIST 区别与用法
- 基础调试命令
- Oracle 循环语句
- spring MVC 3.1 注解:@ResponseBody 返回json数据
- 迪尼斯神奇英语全32集含教材
- 做空中国房地产市场时机判断
- 黑马程序员--03.Java面向对象--08.【多态中成员的特点】
- 二分查找
- Android自定义Toast,指定Toast信息显示的位置并使用Toast显示其他View
- c语言保留字(关键字)汇总
- struts中Action相关
- 【Java学习笔记】基础知识学习5【数组排序,复制】