日期:2014-05-18  浏览次数:20581 次

validator框架,还没提交就出现验证错误提示,想了个原因,不知道是不是!
使用validator框架做验证,在点超链接进入页面的时候就出现验证错误提示,就是已经验证了一遍。

我想原因是不是因为 进入页面时,连接地址为:/login.do?method=initlogin,这样已经调用了方法,进入了action,就struts就会先验证一遍。所以加载时就验证了一下,然后点按钮,又验证一下。

是不是这个原因??那页面是不是只能做成,先连接到/login.jsp ,然后点了提交再进ACTION?




------解决方案--------------------
是这样的。每当你向action提交请求时,都会进行验证。而此时你的actionform里的数据都为空,所以验证不成功。解决的办法有两种,第一是你先进入login.jsp页面,然后再提交。第二种办法就是在struts的配置文件里,对action进行两次声明,两次的path属性不同。如:<action path="/QueryAction" 
type="com.cvicse.inforsuite.studio.ui.struts.actions.QueryAction" 
parameter="event" 
name="QueryForm" 
scope="request" 
validate="true" 
input="/user_update.jsp">

和:<action path="/Query" 
type="com.cvicse.inforsuite.studio.ui.struts.actions.QueryAction" 
parameter="event" 
name="QueryForm" 
scope="request" 
validate="false" 
input="/result.jsp">
第一个里边的validate属性是ture,所有需要验证的请求都走这个path。而第二个不需要验证,直接提交的都走这里。