ajax

来源:互联网 发布:贵阳软件人均工资 编辑:程序博客网 时间:2024/06/01 09:07
Ajax----请求--->服务器---响应---->Ajax回调
意思是如果你用ajax发送请求,最后不管怎么样,响应结果都会回到这个ajax,这是异步操作。
所以通常Ajax的配置根本不配返回路径,即使配了<return>ajax也不认识
<action="ajaxAction" class="xx" method="xx">
</action>


而struts2的验证框架通常适合于提交表单,这样它就可以
<action="formAction" class="xx" method="xx">
   <return name="success">xxx.jsp</result>
   <return name="input">xxx.jsp</result>
</action>


那么总结下:如果使用Ajax提交,它会进入xml里面进行校验,而且会返回input,但是返回的input数据到Ajax的回调函数里面了,而且返回的是一个页面,你可以通过data.responseText获得,但是获得也没什么意义。


解决方法两种:
①Ajax提交的话不使用struts2的XML校验,改用直接在Action method中校验,如果为空使用response.getWriter().print()打印错误消息,然后Ajax回调函数进行相关处理
②不使用Ajax提交,使用表单submit提交,使用struts2的XML校验,这样绝对能在<s:fielderror/>中输出错误消息