如果不用struts2自带的ajax的验证框架,自己实现ajax JS与Action进行交互,在struts1.x里可以这样写:
function sendURL(userAccount){ createXMLHttpRequest(); var url = "${ctx}/userAction.do?method=check&userAccount="+userAccount; xmlHttp.onreadystatechange = callBack; url=encodeURI(url); //xmlHttp.setRequestHeader("Content-Type","text/html;charset=UTF-8"); xmlHttp.open("POST",url,true); xmlHttp.send(null); } function callBack(){ if(xmlHttp.readyState==4){ if(xmlHttp.status == 200){ checkFlag = xmlHttp.responseText; var message = ""; if(checkFlag != "1"){ message = "${key['check.failed']}"; alert(message); } } } }
并且不要在struts.xml里进行请求处理后的转发。
但在struts2.0里怎么实现这个ajax调用的功能,有几点不明白:
1>JS里怎么写,难道是var url = "${ctx}/check.action?userAccount="+userAccount;
2>应该需要在struts.xml里配置:
<package name="Book_CRUD" extends="struts-default" namespace="/Book"> <action name="check" class="com.cn.kevin.spring.action.BookAction" method="checkIsbn"> </action> </package>
如果不这样声明的话,上面的check.action就不知从何而来了。但是这样子是否请求的返回被框架拦截,而不能到达页面啦? 并且这种写法我测试过,好像不行,根本就没有进入checkIsbn这个方法里。
请各位熟悉Struts2的朋友解答一下,小弟敬候,谢谢!!