注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈,你的鼓舞是我创作的最大动力,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】的更多相关文章

  1. SpringMVC经典系列-15对SpringMVC的总结---【LinusZhu】

    注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...

  2. SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】

    注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈,你的鼓舞是我创作的最大动力.LinusZhu在此表示十分感谢,当然文章中如有纰漏.请联系linusz ...

  3. SpringMVC经典系列-14自己定义SpringMVC的拦截器---【LinusZhu】

    注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处.假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...

  4. SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码

    在SpringMVC学习系列(6) 之 数据验证中我们已经学习了如何结合Hibernate-validator进行后台的数据合法性验证,但是通常来说后台验证只是第二道保险,为了更好的用户体验会现在前端 ...

  5. SpringMVC学习系列(3) 之 URL请求到Action的映射规则

    在系列(2)中我们展示了一个简单的get请求,并返回了一个简单的helloworld页面.本篇我们来学习如何来配置一个action的url映射规则. 在系列(2)中我们在HelloWorldContr ...

  6. Vue系列之 => 通过vue-resource发起ajax请求

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request 不进入controller

    今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语 ...

  8. Spring框架系列(13) - SpringMVC实现原理之DispatcherServlet的初始化过程

    前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet ...

  9. SpringMVC学习系列-后记 解决GET请求时中文乱码的问题

    SpringMVC学习系列-后记 解决GET请求时中文乱码的问题 之前项目中的web.xml中的编码设置: <filter> <filter-name>CharacterEnc ...

随机推荐

  1. mysql sql灵活运用

    1.mysq获取表的字段及属性 SELECT * FROM information_schema.COLUMNS WHERE table_name = 'item_url'; 2.正则表达式 SELE ...

  2. 网上测试了很多关于PYTHON的WEBSOCKET样例,下面这个才成功了

    这是最底层的, 嘿嘿,我 还是习惯搞个框架来实现急需要的功能... 这个东东玩得很有意思的.. 服务器端的代码: import simplejson import socket import sys ...

  3. asp.net 简单实现禁用或启用页面中的某一类型的控件

    我们在提交一个表单的时候,可能由于网络或服务器的原因,处理很慢,而用户在处理结果出来之前反复点击按钮提交.这样很容易造成不必要的麻烦甚至是错误.说了这么多,其实就是要实现一个禁用某些控件的一种功能.好 ...

  4. 《ArcGIS Engine+C#实例开发教程》第四讲 状态栏信息的添加与实现

    原文:<ArcGIS Engine+C#实例开发教程>第四讲 状态栏信息的添加与实现 摘要:在上一讲中,我们完成了 MapControl 和PageLayoutControl两种视图的同步 ...

  5. SSO(转)

    一.介绍       主站下有多个子系统,每次登录主系统,跳转到子系统时,又需要重新登录: 子系统与主系统都有各自的用户信息表:各个系统的用户角色.权限也各不相同: 二.目的       每次登录主系 ...

  6. hdu4705Y

    链接 这题可以算树形DP吧 树上的递推 对于树上的某个节点 反着算比较好做 就是算有多少有simple路径的 固定某个节点u 另两个节点 有两种取法 1.从不同子树里各选一个 2.从所有子树里选一个 ...

  7. write & read a MapFile(基于全新2.2.0API)

    write & read a  MapFile import java.io.IOException; import org.apache.hadoop.io.IntWritable; imp ...

  8. 处理MVC中默认的Json方法返回时间的问题

    利用 Json方法返回 数据时,如果有时间格式,会变成 "\/Date(1369419656217)\/" 这个样子,问了同事找到个解决方法 using Newtonsoft.Js ...

  9. 普通Java类获取spring 容器的bean的5种方法

    方法一:在初始化时保存ApplicationContext对象方法二:通过Spring提供的工具类获取ApplicationContext对象方法三:继承自抽象类ApplicationObjectSu ...

  10. HDU 5651 xiaoxin juju needs help 水题一发

    分析:求一下组合数 首先,如果不止一个字符出现的次数为奇数,则结果为0. 否则,我们把每个字符出现次数除2,也就是考虑一半的情况. 那么结果就是这个可重复集合的排列数了. fact(n)/fact(a ...