springmvc和前台交互主要有两种形式:
- 前台Jsp向Controller层中传递Json数据,Handler向前台返回Json数据。
- 前台Jsp向Controller层中传递key-value键值对形式,Handler返回json数据。
最终都向前端返回json数据,是为了方便对请求的结果进行解析。
配置
导入相应的jar包
处理过程:
前端json数据传过来,controller层通过在形参上加上@RequestBody,将json数据转成java对象,
在方法上加上注解@ResponseBody将返回的数据转成json类型
前端j页面js代码
function requestjson(){
$.ajax({
type:'post',
url:'${pageContext.request.contextPath }/requestJson.action',
contentType:'application/json;charset=utf-8',
data:'{"name":"张三","age":12}',//json串
success:function(data){
alert(data.name);
}
});
}
后台controller层
@ResponseBody
@RequestMapping("/requestJson")
public Student requestJson(@RequestBody Student student){
System.out.println(student);
return student;
}
如果传来的数据是key-value形式:
这样就正常通过pojo类来接收,返回的也可以转成json类型,也可以不是
前端js代码:
function responsejson(){
$.ajax({
type:'post',
url:'${pageContext.request.contextPath }/responseJson.action',
data:'name=张三&age=12',//key/value
success:function(data){
alert(data.name);
}
});
}
后台controller层:
@ResponseBody
@RequestMapping("/responseJson")
public Student responseJson(Student student) throws Exception{
System.out.println(student);
return student;
}
作用:
为了方便开发,不管你什么样的数据都能应付。
配置json转换器
这种情况是指在单独配置处理器适配器的情况下,如果用<mvc:annotation-driven />
则默认配好了。