一、修改pom文件或引入相关jar包
Spring使用了jackson类库,帮助我们在java对象和json、xml数据之间的互相转换。他可以将控制器返回的对象直接转换成json数据,供客户端使用。客户端也可以传送json数据到服务器进行直接转换。
maven项目修改pom文件:
com.fasterxml.jackson.core
jackson-core
2.9.0
com.fasterxml.jackson.core
jackson-databind
2.9.0
com.fasterxml.jackson.core
jackson-annotations
2.9.0
二、修改springMVC配置文件
在SpringMVC3.1之后对json的解析采用了新的HandlerAdapter,之前一直使用的是AnnotationMethodHandlerAdapter,在此之后推荐使用RequestMappingHandlerAdapter,我会将之前和之后的配置都贴出来,供选择使用。
SpringMVC 3.1之前的配置:
SpringMVC 3.1之后的配置:
三、服务端代码
@RequestMapping ( "/test5" )
public @ResponseBody List test5(@RequestParam("name")String uname) {
System.out.println(uname);
User u1=new User();User u2=new User();
u1.setUsername("李四");
u2.setUsername("张三");
List list=new ArrayList();
list.add(u1);
list.add(u2);
return list;
}
注意: 使用@RequestBody绑定返回(或请求)对象,Spring会帮你进行协议转换,转换成你想要的类型格式。
四、HTML代码
charset=utf-8" pageEncoding="utf-8"%>
测试ajax请求页面function saveFn(){
$.ajax({
url:"${ctx}/roles/test5",
dataType:"json",
data:{name:$("#uname").val()},
success:function(result){
$("#div1").html(result[0].username);
}
});
}
五、结束语
好了,通过上面的操作,您已经实现了ajax的请求处理了吧,你会发现SpringMVC对ajax请求的处理真的是异常的简单,当然了如果觉得jar包中提供的转换器用着不爽,还可以自己去写一个对应的适配器的类(实现HttpMessageConverter接口),然后放到messageConverters里即可,观察源码的话你会发现messageConverters采用了适配器模式对数据进行转换。