Struts和AJAX的联合使用
前段时间刚完成一个在Struts2框架下使用AJAX实现页面无刷新的检验功能,可能在普通页面和Struts2下使用AJAX没什么区别,但
是我第一次在Struts2下使用AJAX还是疑惑了一下,之所以疑惑是因为我在没有尝试的情况下就想当然的做出了自己错误的判断。
我当时想的是AJAX无论是异步请求也好,或者同步请求也好,总之在与数据库交互后肯定会响应写入一个值,不管是字符串,空,
还是其他,既然这样那么问题出来了,因为Struts2下依然要有返回值,因为Struts2要返回RESULT值,即返回路径参数,Struts2根
据返回路径跳转响应页面,可是页面跳转后就是页面全部跳转了,还怎么实现AJAX的局部刷新功能?虽然有疑问,但还得解决,也挺容易。
注:AJAX与servlet联合使用时可以在servlet中响应写入值后可以不RETURN
AJAX和Struts2联合使用时在ACTION中响应写入值后也要有返回值,只不过这里RETURN NULL就可以了
校验功能有一个页面,页面中有一个校验按钮,点击校验按钮会调用一个函数,该函数调用AJAX总函数通过与数据库交互查询
得到返回值
其中我把AJAX的异步测试流程和同步测试流程一步一步跟下来并做了记录放在这里,绝对详细,没有漏过一步
页面按钮:
JSP按钮单击事件调用函数:
AJAX请求路径对应的ACTION方法:
AJAX主函数getxmbh:
AJAX回调函数ajaxInner:
AJAX异步测试流程:
AJAX同步测试流程:
注:其中异步流程的第一个流程返回值是none(即错误值),同步流程的第一个返回值是0(正确值),从第二次流程开始异步流程和同步流程返回值相同且正确,原因通过流程能看出。