一、 思路:
Jquery,JSON插件与Struts2进行整合,实现局部刷新
二、 引入整合jar包:
三、 修改struct.xml文件中package中的extends属性为json-default
四、 将实现Ajax方法的返回值的result中的type属性的值赋为json,如:
五、 测试:登陆时输入用户名后提示用户是否可用
1、 将jquery-1.4.2.js引人项目中。这里,我在WebRoot中建一名为script包,并在script包中建一名为jquery的包存放jquery-1.4.2
2、 修改login.jsp页面
注:从代码中可以看出首先是引人jquery-1.4.2.js。这里介绍一下$.post("researchUser.action",{"user.userName":userName},function(data)从post可以看出这是post提交方式,其中第一
个 参数researchUser.action表示要提交到哪里去,第二个参数用{}表示提交的参数,可以有多个,格式"user.userName":username,多个参数时用逗号隔开,function()中的值data就
是返回得值。
3、 修改struct.xml:即添加action,修改如下
4、 在UserAction中添加属性flag,并提供setter和getter方法(flag类型是boolean,用于判断用户名是否存在),再添加方法researchUser(),代码如下:
5、 在UserService中添加researchUser()方法,其中调用了UserDao中的researchUser()方法。代码如下:
6、 在UserDao中添加researchUser()方法,代码如下:
7、 测试:
数据库中数据:
启动tomcat,打开浏览器输入http://localhost:8080/SSH/login.jsp,输入用户名chensr命然后鼠标离开输入区域:输入框下会出现:
如果在输入框把用户改下成aaa,输入框下会出现
测试成功!!!!
扩展:用火狐查看Ajax返回的值,如下:
这时你会发现返回值data中除flag还有user、userService,如果要删除返回值中的user、userService可在userAction中的getUser()和getUserService()(该方法可以直接删除,不影响程序)上面添加语句@JSON(serialize=false)即可,再次测试:会发现返回值只有flag