SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】
来源:互联网 发布:mac版微信截图 编辑:程序博客网 时间:2024/04/30 13:35
注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linuszhu@163.com,敬请朋友们斧正,谢谢。
这一部分主要讲解SpringMVC如何处理Ajax请求,是首先要讲解一下jackson类库,可以帮助我们在java对象和json、xml数据之间的互相转换。他可以将控制器返回的对象直接转换成json数据,供客户端使用,客户端也可以传送json数据到服务器进行转换,很是方便。
具体环境搭建步骤如下:
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. 客户端代码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. 服务器端代码如下:
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 ,界面如下:
点击链接进行测试,会调用后台程序,将结果返回到页面上,如下:
- SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】
- SpringMVC经典系列-01简介SpringMVC---【LinusZhu】
- SpringMVC经典系列-10详解SpringMVC请求转发和重定向---【LinusZhu】
- SpringMVC经典系列-09对SpringMVC的Controller层返回值的处理---【LinusZhu】
- SpringMVC经典系列-06讲解SpringMVC核心注解---【LinusZhu】
- SpringMVC经典系列-07讲解SpringMVC的ModelMap类---【LinusZhu】
- SpringMVC经典系列-08讲解SpringMVC的ModelAndVIew类---【LinusZhu】
- SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】
- SpringMVC经典系列-14自定义SpringMVC的拦截器---【LinusZhu】
- SpringMVC经典系列-15对SpringMVC的总结---【LinusZhu】
- SpringMVC经典系列-11简单获取request、session对象---【LinusZhu】
- SpringMVC处理AJAX请求
- springmvc处理ajax请求
- springMvc处理ajax请求
- SpringMVC:ajax请求处理
- springmvc处理ajax请求
- SpringMVC经典系列-05深入了解SpringMVC的核心原理---【LinusZhu】
- SpringMVC使用@ResponseBody处理Ajax请求
- 【为什么网站有权重却没有排名】
- P问题、NP问题、NPC问题、NP难问题的概念
- [Python]网络爬虫(一):抓取网页的含义和URL基本构成
- solr带carrot2插件可以用配置好的solrconfig.xml
- Objective-c笔记
- SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】
- Swift设计模式之单例(SINGLETON)
- Android 屏幕密度与尺寸
- 迅雷远程 x86版在ubuntu12.04上的安装
- 从一张图看员工绩效管理
- JX8NET 小游戏网教你查找问题根本原因
- 朵姐们花穿上美丽的婚纱
- RHEL 6.3 下oracle 11g R2安装
- flex4 一些项目用到的技术