网站或者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" οnclick="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请求了!!!”已经传到了页面。
来源:CSDN
作者:冰上浮云
链接:https://blog.csdn.net/clj198606061111/article/details/20569087