这一周学会了Springmvc,现在开始尝试加入Ajax,方法如下:
首先要加入jackson jar包,没有的话可以下载我提供的springmvc+mybatis+ajax+taglib的jar包
然后在springmvc配置文件中加入:
<!-- 支持spring3.0新的mvc注解 -->
<mvc:annotation-driven />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 以及 Ajax请求-->
<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>
其次就是ajax请求界面script的编写了
<script language="javascript" type="text/javascript">
function createXMLHttpRequest(){
if(window.XMLHttpRequest){//可以判断浏览器类型
xmlHttp = new XMLHttpRequest();
}
else if(window.ActiveXObject){//如果浏览器支持ActiveX控件
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
function myajaxtest(){
createXMLHttpRequest();
var url = "myajax/myajax1?uname=测试&a="+Math.random();
if(xmlHttp){
xmlHttp.open("GET",url,true);//get方法提交
xmlHttp.setRequestHeader("accept","application/json"); //必带的表头
//指定回调函数为DBName_callback
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}
}
//回调函数
function callback(){
if(xmlHttp.readyState ==4){
if(xmlHttp.status ==200){
var xmlDoc = xmlHttp.responseText;//取出回传参数
alert(xmlDoc);
if(xmlDoc.replace(/^\s*|\s*$/g, '') == "<span style="font-family: Arial, Helvetica, sans-serif;">ce测试</span><span style="font-family: Arial, Helvetica, sans-serif;">")//去掉空格后才能判断</span>
{
alert("测试成功!");
}
else{
alert("不能得到描述信息:" + xmlHttp.statusText);
}
}
}
}
</script>
用button调出
<button type="button" c οnclick="myajaxtest();" style="width:100px;">Ajax</button>
最后建立一个ajax的controller
package com.wy.controller;
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;
@Controller
@RequestMapping("myajax")
public class MyAjaxController {
@RequestMapping(value="/myajax1",method=RequestMethod.GET)//设定只接收get方法
public @ResponseBody String myajax1(String uname,String a) throws Exception{
uname = new String(uname.getBytes("ISO-8859-1"),"UTF-8");//解决中文乱码
System.out.println(uname);
System.out.println(a);
System.out.println("进入Ajax");
return "ce测试";
}
}
好了,做到这就算成功啦!