SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】
注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈,你的鼓舞是我创作的最大动力,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 ,界面例如以下:

点击链接进行測试,会调用后台程序,将结果返回到页面上,例如以下:

SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】的更多相关文章
- SpringMVC经典系列-15对SpringMVC的总结---【LinusZhu】
注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...
- SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】
注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈,你的鼓舞是我创作的最大动力.LinusZhu在此表示十分感谢,当然文章中如有纰漏.请联系linusz ...
- SpringMVC经典系列-14自己定义SpringMVC的拦截器---【LinusZhu】
注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处.假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...
- SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码
在SpringMVC学习系列(6) 之 数据验证中我们已经学习了如何结合Hibernate-validator进行后台的数据合法性验证,但是通常来说后台验证只是第二道保险,为了更好的用户体验会现在前端 ...
- SpringMVC学习系列(3) 之 URL请求到Action的映射规则
在系列(2)中我们展示了一个简单的get请求,并返回了一个简单的helloworld页面.本篇我们来学习如何来配置一个action的url映射规则. 在系列(2)中我们在HelloWorldContr ...
- Vue系列之 => 通过vue-resource发起ajax请求
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request 不进入controller
今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语 ...
- Spring框架系列(13) - SpringMVC实现原理之DispatcherServlet的初始化过程
前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet ...
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
SpringMVC学习系列-后记 解决GET请求时中文乱码的问题 之前项目中的web.xml中的编码设置: <filter> <filter-name>CharacterEnc ...
随机推荐
- RPM包制作最简单样例
相关开发RPM的包要安装 Summary: the Firt RPM of Sky Name: hellow Version: 0.1 Release: Vendor: PA soft(aguncn@ ...
- Altium Designer中默认取消重复画线的选项
- S5P4418开发板使用要点
一.调试工具 1)USB 转串口驱动:用于驱动板子的串口板,电脑与板子进行调试串口通信2)量产软件 USB驱动安装:用于 NXUsbBurner_Ver1.0.6 软件镜像烧写(量产工具)3)调试工具 ...
- amaze UI的使用
1.放置在独立的位置 2.引入核心css与js <link href="{sh::PUB}amaze-ui/css/amazeui.min.css" rel="st ...
- phpMyAdmin import.php 跨站脚本漏洞
漏洞名称: phpMyAdmin import.php 跨站脚本漏洞 CNNVD编号: CNNVD-201402-281 发布时间: 2014-02-21 更新时间: 2014-02-21 危害等级: ...
- ☀【JS】eval
避免使用 eval <!doctype html> <html lang="zh-CN"> <head> <meta charset=&q ...
- -_-#【减少 DOM 元素】textarea, script 延迟渲染
淘宝详情页的 BigRender 优化与存放大块 HTML 内容的最佳方式 淘宝详情页的BigRender优化的最佳方式 <!DOCTYPE html> <html> < ...
- AFNetworking 2.0 获取json数据时,返回 NSLocalizedDescription=Request failed: unacceptable content-type: text/html, 解决方法.
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSe ...
- MongoDB实战开发 【零基础学习,附完整Asp.net示例】
MongoDB实战开发 [零基础学习,附完整Asp.net示例] 阅读目录 开始 下载MongoDB,并启动它 在C#使用MongoDB 重构(简化)代码 使用MongoDB的客户端查看数据 使用Mo ...
- 不要浪费人生的每一天 ——Dropbox创始人在麻省理工的演讲 z
Dropbox 创始人,CEO 德鲁·休斯顿(Drew Houston)近期在美国麻省理工学院的毕业典礼上发表演讲.他向大学生提出了 3 点人生建议:追逐自己感兴趣的事,找到最合适的圈子,以及不要浪费 ...