您的位置:首页 > 编程语言 > Java开发

SpringMVC AJAX支持

2014-03-05 21:12 351 查看
网站或者BS系统使用ajax技术是再常见不过的了。SpringMVC本身对ajax有很好的支持,前后端使用json作为数据传输格式实现起来很方便。下面我们看个具体的例子。

如何搭建一个最基础的springMVC项目,请参看:

http://blog.csdn.net/clj198606061111/article/details/20492887

一、引入jar包

我们需要引入下面jar包,以提供java对象转为json支持。

1)  jackson-core-asl-1.9.11.jar

2)  jackson-mapper-asl-1.9.11.jar

maven配置:

<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.11</version>
</dependency>
二、测试代码
1、UserAction.java

Ajax方法中加上@ResponseBody注解,返回的java对象会被自动转为json。

package com.clj.test.user.action;

import java.util.HashMap;
import java.util.Map;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@Scope("prototype")
@RequestMapping("/user")
public class UserAction
{
@RequestMapping("/ajaxTest")
@ResponseBody
public Map<String,Object> ajaxTest(String name,String password)
{
System.out.println("name:"+name+",password:"+password);

Map<String,Object> map=new HashMap<String,Object>();
map.put("msg", "我接到ajax请求了!!!");

return map;
}
}


2、ajaxTest.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ajaxTestPage</title>
<script type="text/javascript" src="./js/jquery-1.11.0.min.js" ></script>
<script type="text/javascript">
function testAjax()
{
var rep=$.ajax({
type: "POST",
url: "./user/ajaxTest",
data: { name: "王五", password: "Boston" }
});

rep.done(function( data ){
alert( "Data Saved: " + data.msg );
});

rep.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
}
</script>
</head>
<body>
<h3>AJAX Test</h3>
<input type="button" value="testAjax" onclick="testAjax()"/>
</body>
</html>


上面的测试页面中,我们引用的js的实际位置是:/WEB-INF/js/jquery-1.11.0.min.js但是页面上我们使用的地址却是:./js/jquery-1.11.0.min.js,为什么我们能访问到这个文件能,因为这个js文件是一个静态文件,告诉springMVC这个是静态资源,你要作为静态资源来处理,在springMVC配置文件中加如下配置:
<mvc:resources mapping="/js/**" location="/WEB-INF/js/" cache-period="31556926"/>
这样/WEB-INF/js/下的所有文件我们都可以通过js/这个路径来引用了。

三、测试

浏览器中直接输入:http://localhost:8080/springMVC/ajaxTest.html

便可进入测试页面,如果进不了这个测试页面,看看web.xml中是否加了如下配置
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

我们的springMVC配置的是REST风格的地址请求方式,如果不加上面的配置,html文件也会被springMVC的拦截器拦截,但是又没有具体的处理器来处理,就会出现找不到文件的情况。

 

点击测试页的testAjax按钮,会弹出如下对话框,说明ajax请求已经成功,后台的信息“我接到ajax请求了!!!”已经传到了页面。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java springmvc ajax