spring使用了jackson类库,帮助我们在Java对象和json、xml数据之间互相转换。他可以将控制器返回的对象直接转换成json数据,供客户端使用。客户端也可以传送json数据到服务器进行直接转换。使用步骤如下:
1、项目中需要引入下面两个jar包
jackson-core-asl-1.7.2jar
jackson-mapper-asl-1.7.2jar
2、spring配置文件中增加:
<mvc:annotation-driver /><!-- 支持spring3.0新的mvc注解 -->
<!-- 启动spring MVC的注解功能,完成请求和注解 pojo的映射 -->
<bean
class="org.springframevork.web.servlet.mvc.annotaction.AnnotationMoethodHandlerAdapter">
<property name="cacheSecconds" value="0" />
<property name="messageConverters">
<list>
<bean
class="org.springframevork.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
3、客户端代码a.jap如下:
<script>
function createAjaxObj(){
var req;
if(window.XMLHttpRequest){
req = new XMLHttpRequest();
}else{
req = new ActiveXObject("Msxml2.XMLHttp");
}
return req;
}
function sendAjaxReq(){
var req = createAjaxObj();
req.open("get","myajax.do?method=test1&uname=张三");
req.onreadystatechange = function(){
eval("var result="+req.responseText);
document.getElementById("div1").innerHtml = result[0].uname;
}
req.send(null);
}
</script>
<body>
<a href="javascript:void(0);" onclick="sendAjaxReq();">测试</a>
<div id="div1"></div>
</body>
4、服务器端代码如下:
Pojo User对象
public class User{
String id;
String uname;
String age;
构造方法(略);
get/set(略);
}
Controller层:
@Controller
@RequestMapping("myajax.do")
public class MyAjaxController{
@RequestMapping(params="method=RequestMethod.GET")
public @ResponseBodyList<User> test1(String name) throws Exception{
String uname2=new String(uname.getBytes("iso8859-1"),"gbk");
System.out.println(uname2);
System.out.println("MyAjaxController.test1()");
List<User> list = new ArrayList<User>();
list.add(new User("小王","123"));
list.add(new User("小张","456"));
return list;
}
}