Spring mvc 返回json格式 - 龙企阁 - 博客频道 - CSDN.NET

第一次使用spring mvc ,在此也算是记录一下以防忘记,希望有经验的朋友指出不足的地方

一、使用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.5</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>
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-core-lgpl</artifactId>
	<version>1.9.6</version>
</dependency>
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-core-asl</artifactId>
	<version>1.9.4</version>
</dependency>
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-mapper-asl</artifactId>
	<version>1.9.5</version>
</dependency>
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-mapper-lgpl</artifactId>
	<version>1.9.6</version>
</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>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters">
			<list >
				<ref bean="mappingJacksonHttpMessageConverter" />
			</list>
		</property>
	</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>
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
    <property name="supportedMediaTypes">
        <list>
            <value>application/json;charset=UTF-8</value>
       </list>
    </property>
</bean>

1、

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

[html] view plaincopyprint?

  1. <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
<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. }
@Controller
public class LoginController {
	@RequestMapping(value="/validataUser.json")
	@ResponseBody
	public Map<String,Object> validataUser(@RequestParam String userName){
		logger.info(" validata user : {}",userName);
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("code", true);
		return map;
	}
}

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

题外话:

关于 @ResponseBody:

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

来自为知笔记(Wiz)

时间: 2024-12-30 11:36:01

Spring mvc 返回json格式 - 龙企阁 - 博客频道 - CSDN.NET的相关文章

Spring MVC返回json格式

在使用SpringMVC框架直接返回json数据给客户端时,不同的版本有差异. 下面介绍两种类型的版本如何配置. 注意:这两种方法均已验证通过. 1.Spring3.1.x版本 1.1 dispatcher-servlet.xml配置文件如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans&q

spring mvc返回json格式和json字符串

首先有必要说一下,json和json字符串是不一样的,后者是一个字符串.而json是一个对象 当然如果调用位置是后台程序这几乎没有区别,因为在后台,无论什么格式数据,都是从响应流中读取字符串. 但是在前端就有很大区别 没错这是一个字符串, 这个taxs是在上一步保存的. 在看另一个请求 这个就是json对象. 这两种形式,其实就一种区别就是在返回头信息中的Content-Type 如果Content-Type是application/json 则浏览器在接收到对象后自动转换为json对象,如果是

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点的 json 报文 问题 问题描述起来比较拗口,其实就是用Spring MVC时,如何将对象映射成 json 报文时不把对象作为json的根节点.即使用@ResponseBody的效果. 比如,默认情况下,使用ModelAndView的addObject(key,object)或者ModelMap的addAttribute(key,object)保存完Java对象,然后交给Srping的视图解析器解析成json时,

spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable

1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(value = { "/actor_details" }, method = { RequestMethod.POST }) @ResponseBody public ResultObject actorDetails(@RequestBody ActorDetailsRequest req)

spring mvc返回json字符串的方式

spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json            优点:不需要自己再处理 步骤一:在spring-servlet.xml文件中配置如下代码 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans&quo

关于 Spring MVC 返回 json 字符串

Spring MVC 返回 json 字符串的几种方式: 1.通过 @ResponseBody 注解自动将返回对象转为 json,这种方法需要 jackson-core.jar 等相关 jar 包支持,项目如果通过 maven 管理,直接在 maven 中加入依赖: ,这样在 maven 依赖中会新增完整的三个 jar 包: 2.在 spring-MVC 配置文件中进行默认视图配置: 3.借助其他 json 工具进行转换:比如可以使用 gson 来完成转换,当然这种方式也得需要 gson 的相关

Spring MVC返回Map格式JSON数据

问题描述: ajax中走error : function(e) {} 问题背景: 在测试controller层时,试过了ResponseEntity<ResponseModel>这种类型返回,这是可行的,但是出于好奇,想看看Map返回可不可行.结果出乎我预料,返回Map时JSP页面总是走error : function(e) {},这就奇怪了,刚才用ResponseEntity返回可行,而Map为什么不行呢?于是就查了ajax走error:function的原因, 原因: 1. 后台出错 2.

使用spring mvc返回JSON,chrome可以,firefox不行的问题定位

转载http://ks.netease.com/blog?id=4024 作者:李景 场景: 前端Post请求同一个url地址,在chrome浏览器上有正常返回json,而在firefox浏览器上却报500错误. 下面是controller层的写法: 其他类似的接口都可以正常使用,查看了其他接口的写法,区别在于多了一个header. 与其他接口唯一的区别就是少写了一个Accept=application/json. 这是为什么呢?通过查看源码以及对两个浏览器请求头的对比,终于找出问题的原因,下面

spring mvc 返回json的配置

转载自:http://my.oschina.net/haopeng/blog/324934 springMVC-servlet.xml 配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63