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 ...
随机推荐
- ASP.NET MVC3 Web应用程序中启用GZip压缩示例
http://www.mzwu.com/article.asp?id=3284 自定义一个筛选器,继承于GZipAttribute: using System;using System.IO.Comp ...
- 转发:maven打包时始终出现以下提示:-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)
maven打包时始终出现以下提示: 1.-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)List<User> userList= new Array ...
- VC 对话框背景颜色、控件颜色(三种方法)
系统环境:Windows 7软件环境:Visual C++ 2008 SP1本次目的:为对话框设置背景颜色.控件颜色 既然MFC对话框不好开发,那么现在我们来开始美化我们的对话框.为对话框设置背景颜色 ...
- 【Linux远程管理】SSH协议远程管理
SSH(Secure Shell)协议.命令行界面(CLI)下的远程管理工具,几乎所有的操作系统都有,区别于Telnet,SSH在进行数据传送时会对数据进行加密,所以SSH是比较安全的协议.几乎所有的 ...
- WebChart网页局域网聊天系列(二):服务器结构及核心代码
public partial class MainForm : Form { private Socket server;//服务器Socket private int userNum;//当前在线用 ...
- nvidia gpu fan speed control
nvidia在linux上控制风扇速度,需要起X,在无显示器链接的服务器上显得有点坑,这里汇总一下整个流程 1.nvidia-xconfig --cool-bits=4 生成xorg.conf 2.在 ...
- combobox的下拉框高度怎样设计合理
orry,代码如下$.extend($.fn.combobox.methods, { autoHeight : function (jq) {//combobox扩展,自动调整高度 ...
- SharePoint 2010在win7 x64 安装
转:http://kaneboy.blog.51cto.com/1308893/328000 关于<SharePoint 2010应用程序开发指南>,我和杜伟同学正在撰写中,希望下半年早点 ...
- Log4Net 配置和使用
转:http://www.cnblogs.com/chencidi/archive/2010/01/12/1645291.html web.config配置如下: <?xml version=& ...
- (转载)四种常见的 POST 提交数据方式
(转载)http://www.imququ.com/post/four-ways-to-post-data-in-http.html HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS ...