注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈,你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linuszhu@163.com,敬请朋友们斧正,谢谢。
这一部分主要解说SpringMVC怎样处理Ajax请求,是首先要解说一下jackson类库,能够帮助我们在java对象和json、xml数据之间的互相转换。他能够将控制器返回的对象直接转换成json数据,供client使用,client也能够传送json数据到server进行转换,非常是方便。
详细环境搭建过程例如以下:
1. 下载两个jackson的jar包:
jackson-core-asl-1.7.2jar、jackson-mapper-asl-1.7.2jar
2. 在SpringMVC配置文件里加入例如以下部分:
<mvc:annotation-driven /> <!-- 支持spring3.0新的mvc注解 -->
<!-- 启动Spring MVC的注解功能,完毕请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="cacheSeconds" value="0" />
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
3. client代码ajaxTest.jsp例如以下:
<%@page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ajax</title>
<META http-equiv="content-type" CONTENT="text/html;charset=UTF-8">
<script>
function createAjaxObj() {
var req;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else {
req = new ActiveXObject("Msxml2.XMLHTTP"); //ie
}
return req;
}
function sendAjaxReq() {
var req = createAjaxObj();
req.open("get", "myajax.do?method=test1&uname=张三");
req.setRequestHeader("accept", "application/json");
req.onreadystatechange = function() {
eval("var result=" + req.responseText);
document.getElementById("div1").innerHTML = result[0].uname + "==="
+ result[1].uname + "===" + result[2].uname;
};
req.send(null);
}
</script>
</head>
<body>
<a href="javascript:void(0);" onclick="sendAjaxReq();">Ajax測试</a>
<div id="div1"></div>
</body>
</html>
4. server端代码例如以下:
package com.spring.ajax;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.spring.bean.User;
@Controller
@RequestMapping("myajax.do")
public class MyAjaxController {
@RequestMapping(params = "method=test1")
public @ResponseBody
List<User> test1(String uname) 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>();
User u1 = new User();
u1.setId(111);
u1.setUname("測试1");
User u2 = new User();
u2.setId(222);
u2.setUname("測试2");
User u3 = new User();
u3.setId(333);
u3.setUname("測试3");
list.add(u1);
list.add(u2);
list.add(u3);
return list;
}
}
5. 项目执行測试。
输入地址:http://localhost:8081/SpringMVC02/ajaxTest.jsp ,界面例如以下:
点击链接进行測试,会调用后台程序,将结果返回到页面上,例如以下:
转载于:https://www.cnblogs.com/bhlsheji/p/4040711.html