当前位置: 代码迷 >> JavaScript >> Spring mvc 回到json格式
  详细解决方案

Spring mvc 回到json格式

热度:294   发布时间:2013-09-10 14:11:41.0
Spring mvc 返回json格式

?

一、使用maven管理jar。

?

[html] view plaincopyprint?
  1. <dependency>??
  2. ??? <groupId>org.codehaus.jackson</groupId>??
  3. ????<artifactId>jackson-core-lgpl</artifactId>??
  4. ????<version>1.9.6</version>??
  5. </dependency>??
  6. <dependency>??
  7. ??? <groupId>org.codehaus.jackson</groupId>??
  8. ????<artifactId>jackson-core-asl</artifactId>??
  9. ????<version>1.9.4</version>??
  10. </dependency>??
  11. <dependency>??
  12. ??? <groupId>org.codehaus.jackson</groupId>??
  13. ????<artifactId>jackson-mapper-asl</artifactId>??
  14. ????<version>1.9.9</version>??
  15. </dependency>??
  16. <dependency>??
  17. ????<groupId>org.codehaus.jackson</groupId>??
  18. ????<artifactId>jackson-mapper-lgpl</artifactId>??
  19. ????<version>1.9.6</version>??
  20. </dependency>??

?

?

二、配置spring-servlet.xml:

[html] view plaincopyprint?
  1. <bean?class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">??????
  2. ????????<property?name="messageConverters">??????
  3. ????????????<list?>??????
  4. ????????????????<ref?bean="mappingJacksonHttpMessageConverter"?/>??????
  5. ????????????</list>??????
  6. ????????</property>??????
  7. ????</bean>??

?

?

?

mappingJacksonHttpMessageConverter : 用来处理json格式转换

?

[html] view plaincopyprint?
  1. <bean?id="mappingJacksonHttpMessageConverter"?class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">????
  2. ????<property?name="supportedMediaTypes">????
  3. ????????<list>????
  4. ????????????<value>application/json;charset=UTF-8</value>????
  5. ???????</list>????
  6. ????</property>??
  7. </bean>??

?

?

?

1、

?

如果?mappingJacksonHttpMessageConverter 可以 直接写成如下:

?

[html] view plaincopyprint?
  1. <bean?id="mappingJacksonHttpMessageConverter"?class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"?/>????

这样默认应该是 :ISO-88859-1

2、

?

supportedMediaTypes 的?list 里面 可以写多个value

?

<list>

?

<value>apolication/json; charset=UTF-8</value>

?

<value>text/html;charset=UTF-8</value>

?

</list>

?

三、controller 配置@ResponseBody

?

[java] view plaincopyprint?
  1. @Controller??
  2. public?class?LoginController?{??
  3. ????@RequestMapping(value="/validataUser.json")??
  4. ????@ResponseBody??
  5. ????public?Map<String,Object>?validataUser(@RequestParam?String?userName){??
  6. ????????logger.info("?validata?user?:?{}",userName);??
  7. ????????Map<String,Object>?map?=?new?HashMap<String,Object>();??
  8. ????????map.put("code",?true);??
  9. ????????return?map;??
  10. ????}??
  11. }??
  12. //可以从后台获取对象、List、Map在前台显示

?

四:页面上仍然按照原来的ajax区json的格式一样、

?

?

//注意对返回json取数据时样式书写,有的里面嵌套数组

?

?

题外话:

?

关于?@ResponseBody:

将内容或对象作为 HTTP 响应正文返回,使用@ResponseBody将会跳过视图处理部分,而是调用适合HttpMessageConverter,将返回值写入输出流。

  相关解决方案