requestBody和responseBody
requestBody把前台页面传递的json格式数据强制转换成javabean
responsebody在后台把javabean转换成json格式的数据返回到页面
这两个注解不能直接使用,需要依赖json的jar包
作用:
@RequestBody注解用于读取http请求的内容(字符串),
通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。
一、导入jar包:
jackson-core-asl-1.9.11.jar
jackson-mapper-asl-1.9.11.jar
二、配置json格式转换
请求json响应json
在适配器中添加:不需要<mvc:annotation-driven>
<!-- 配置注解处理器适配器:调用Controller方法,执行Controller -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<!-- 对json数据格式的支持 -->
<property name="messageConverts">
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</property>
</bean>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.js">
function requestJson() {
var jsonUser = JSON.stringify({"username":"张三丰","age":"111","address":"武当山"});
$.ajax({
type:'post',
url:'${pageContext.request.contextPath }/user/requestJson.do',
contentType:'application/json;charset=utf-8',
data:jsonUser,
success:function(data){
alert(data);
}
})
}
</script>
</head>
<body>
<input type="button" value="请求json,返回json" οnclick="requestJson();">
</body>
UserController:
//跳转到requestjson页面
@RequestMapping("toJson")
public String toJson(){
return "requestJson";
}
//接受json格式数据,使用requestBody把json格式数据封装到user对象
//返回user对象,使用responBody把user对象转换成json对象
@RequestMapping("requestJson")
public @ResponseBody User requestJson(@RequestBody User user){
System.out.println(user);
return user;
}
请求pojo,响应json
springmvc.xml:
只需配置:<mvc:annotation-driven>j
requestJson.jsp:
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.js">
function requestPojo() {
$.ajax({
type:'post',
url:'${pageContext.request.contextPath }/user/requestPojo.do',
data:'username=张三&age=123&address=北京'
success:function(data){
alter(data);
}
})
}
</script>
</head>
<body>
<input type="button" value="请求pojo,返回pojo" οnclick="requestPojo();">
</body>
UserController.java:
//跳转到requestjson页面
@RequestMapping("toJson")
public String toJson(){
return "requestJson";
}
//请求pojo,返回json
@RequestMapping("requestPojo")
public @ResponseBody User requestJson(User user){
System.out.println(user);
return user;
}