SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢。

这一部分主要讲解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】,布布扣,bubuko.com

时间: 2024-10-14 04:46:17

SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】的相关文章

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

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 到此为止,关于SpringMVC部分已经基本讲述完了,我所讲述的知识点都是在项目中能经常使用到的,所讲述项目代码都是经过验证的,可能个人的表述不是很到位,希望大家海涵,如果大家发现其中有问题可以随时联系我的邮箱,还是那句话,我发博文主要是为了分享自己的

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

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 不知不觉已经把Spring的基础部分讲解完了,所讲述的都是在项目中经常用到的东西,是经得住考验的,接下来的部分主要是要讲述使用SpringMVC进行的文件上传.处理Ajax请求.自定义拦截器功能的实现,不多说了,首先讲解文件上传部分,开始--     

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

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 这部分主要讲解SpringMVC的拦截器的部分,会带着大家完成定义拦截器的两种方式的实例,不多说了,开始-- SpringMVC的拦截器主要是用于拦截用户的请求,并且进行相应的处理,如:权限验证.判断登录等. 定义拦截器的两种方式,如下: 1. 实现接

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

position:static(静态定位) 当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置 podisition定位问题.所以当没有定义position属性时,并不说明该元素没有自己的位置,它会遵循默认显示为静态位置,在静态定位状态下无法通过坐标值(top,left,right,bottom)来改变它的位置. position:absolute(绝对定位) 当position属性定义为absolute时,元素会脱离文档流

SpringMVC学习系列

SpringMVC学习系列(1) 之 初识SpringMVC SpringMVC学习系列(2) 之 经典的HelloWorld实现 SpringMVC学习系列(3) 之 URL请求到Action的映射规则SpringMVC学习系列(4) 之 数据绑定-1 SpringMVC学习系列(5) 之 数据绑定-2 SpringMVC学习系列(6) 之 数据验证 SpringMVC学习系列(7) 之 格式化显示 SpringMVC学习系列(8) 之 国际化 SpringMVC学习系列(9) 之 实现注解式

SpringMVC学习系列(1) 之 初识SpringMVC

1.前言: 与SpringMVC的结识源于个人之前想做一个微信公众账号的管理平台玩玩,既然要做就需要考虑平台的选择问题.由于我的朋友只有一台运行了Linux系统的虚拟主机,且上面还运行有他自己的一些论坛.找不到windows虚拟主机,且肯定不能换朋友主机的系统.刚开始时打算用mono把之前做的.Net MVC项目搭的框架运行一下看看能不能用,发现根本跑不起来(项目用了Spring.NET当时mono和Spring.NET还不兼容,Sping.NET论坛说是由于mono的反射实现机制的问题.好消息

springMVC 解决ajax请求的406错误

直入主题-- 页面表单异步提交:$.post('<%=request.getContextPath()%>/web/register.html', $(form).serialize(), function(data){...}); java后台springMVC的controller接受请求: @RequestMapping("register") @ResponseBody public Map<String, String> register(HttpSe

SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现

到这里已经写到第12篇了,前11篇基本上把Spring MVC主要的内容都讲了,现在就直接上一个项目吧,希望能对有需要的朋友有一些帮助. 一.首先看一下项目结构: InfrastructureProjects:是抽取出的基础项目,主要封装了一些通用的操作. SpringMVC3Demo:就是管理系统所在的项目. WeiXinAPI:是之前做微信管理平台测试时封装一些操作,如果不需要把该项目移除即可. 注:项目的前端UI框架用的是国外的一个基于Bootstrap框架的开发的Demo,如不需要替换为

SpringMVC学习系列(10) 之 异常处理

在项目中如何处理出现的异常,在每个可能出现异常的地方都写代码捕捉异常?这显然是不合理的,当项目越来越大是也是不可维护的.那么如何保证我们处理异常的代码精简且便于维护呢?这就是本篇要讲的内容->异常处理. 在Spring MVC中我们可以通过以下2中途径来对异常进行集中处理: 一.继承HandlerExceptionResolver接口实现自己的处理方法,如: public class MyHandlerExceptionResolver implements HandlerExceptionRe