日期:2014-05-17  浏览次数:20639 次

struts用了动态验证框架后,好像用不了ajax
struts用了动态验证框架后,好像用不了ajax,  
 
  javascript调用时,因表单的验证没通过(因为还没提交表单),执行不到服务器端相应的dispatchaction中的方法,所以  
   
  server端就没返回的数据... 原来的页面出现的是表单验证出错的message.
   
  是这样吗? 或者还是其它的原因,有什么方法解决吗?

------解决方案--------------------
这个问题是不存在的。

struts是标准的MVC,正好比作一排排整齐的坐位。业务数据是要传给后排的小纸条,正常情况下你需要很多人来帮助一层一层的传下去。但是AJAX不会中规中举,AJAX的方式是你直接站起来,把纸条扔到后面去,他走的是另一条路,在实现时过程是这样的。

比如说作一个用户名是否重复的异步验证:

用户在input中输入用户名,当此input失去焦点时,触发AJAX访问你的ACTION中的某一方法。ACTION中取得值并处理后,给出一个response(注意,这里就是和一般情况下使用ACTION的不同之处,不需要为此方法配置任何forword,且方法中原先应该返回ActionForward对象处应该返回null,使用out.print("msg")这样的结构来响应),客户端的XMLHttpRequest对象可以通过方法,req.responseText;一取得msg

在JS中将返回的结果体现到页面上
------解决方案--------------------
探讨
这个问题是不存在的。

struts是标准的MVC,正好比作一排排整齐的坐位。业务数据是要传给后排的小纸条,正常情况下你需要很多人来帮助一层一层的传下去。但是AJAX不会中规中举,AJAX的方式是你直接站起来,把纸条扔到后面去,他走的是另一条路,在实现时过程是这样的。

比如说作一个用户名是否重复的异步验证:

用户在input中输入用户名,当此input失去焦点时,触发AJAX访问你的ACTION中的某一方法。ACTION中取得值并处理后,给出一个response(注意,这里就是和一般情况下使用ACTION的不同之处,不需要为此方法配置任何forword,且方法中原先应该返回ActionForward对象处应该返回null,使用out.print("msg")这样的结构来响应),客户端的XMLHttpRequest对象可以通过方法,req.responseText;一取得msg

在JS中将返回的结果体现到页面上