当请求是json数据,使用@RequestBodyjson数据转化为Java对象,使用@ResponseBodyJava对象转化为json

当请求是key/value数据,不需要@RequestBodyjson数据转化为java对象(SpringMVC自动完成),使用@ResponseBodyjava对象转化为json


准备环境:

需要的jar包:jackson-core-asl-1.9.11.jar,jackson-mapper-asl-1.9.11.jar,springmvc中使用jackson的包进行json转换, @RequestBody @ResponseBody使用这两个包进行jsonjava类的相互转化)


配置json数据转化器

apllicationContext.xml中的处理器适配器配置

<!-- 配置控制器映射器,控制器适配器 -->
	<!--<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
         <!--配置json数据与Java类的转化器-->
		<property name="messageConverters">
			<list>
				<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
			</list>
		</property>
	</bean>
	-->
	<!-- 如果使用注解驱动则省略上面的映射器、适配器以及messageConverters的配置 -->
	<mvc:annotation-driven/>
	<!-- 配置视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>

请求:使用jQuery的Ajax发送请求和接收响应

index.jsp

<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
	<script type="text/javascript">
		function requestJson(){
			$.ajax({
				type:'post',
				url:'/springmvc_mybatis_test13_json/test_Requestjson.action',
				contentType:'application/json;charset=utf-8',	//请求数据是json类型
				data:'{"id":1,"name":"zhnagsan","sex","nan"}',//请求的数据是json串
				success:function(data){	//响应成功后的回调函数
					alert(data);
				}
			})
		}
		function responseJson(){
			$.ajax({
				type:'post',
				url:'/springmvc_mybatis_test13_json/test_ResponseJson.action',
				data:'id=1&name=zhangsan&sex=nan',//请求的数据是key/value
				success:function(data){
					alert(data);
				}
			})
		}
	</script>
  </head>
  
  <body>
  		<input type="button" value="请求json,响应json"/ οnclick="requestJson()"><br/><br/>
  		<input type="button" value="请求key/value,响应json" οnclick="responseJson()"/>
  </body>
Controller.java

@Controller
public class UserController {
	
	//@RequestBody:将json数据转化为Java类
	//@ResponseBody:将Java类转化为json字符串
	@RequestMapping("/test_Requestjson.action")
	public @ResponseBody User test_json(@RequestBody User u){
		System.out.println("aaa");
		return u;
	}
	
	//请求的是key/value,不需要RequestBody转化为Java类,SpringMVC自动完成
	@RequestMapping("/test_ResponseJson.action")
	public @ResponseBody User test_ResponseJson(User u){
		System.out.println("id="+u.getId());
		System.out.println("name="+u.getName());
		return u;
	}
}





GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 3 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐