用XML验证框架写的。验证之后每次错误会显示一次错误提示信息。
    比如验证一个表单数据不能为空,显示错误信息 该项不能为空.如果再发生错误,页面还会显示上次的错误。就是显示两行该项不能为空。这个设置只显示一次?
    还有个问题就是,发生错误之后。表单就不能提交了。填写正确,可以通过验证。但是表单不提交,还是返回到输入页面。没有错误提示信息,这是什么问题?怎么改?

解决方案 »

  1.   

    就是在表单提交的时候,按照写好验证框架。如果输入的数据不符合条件。那么就会在 JSP页面中显示一句提示错误的信息。每一次提交应该只显示该次不符合验证规则的信息。但是现在我的问题是,第一次提交表单。某个数据不符合规则,就会出现一条错误信息。再次提交,上次显示的错误信息不消失,又多出一条一模一样的错误信息。提交几次,就会多显示几条一模一样的错误信息。而且,问题还不址这样,。。再发生一次错误规则之后,再往表单中填入正确的信息,表单提交不了。也没有错误信息。这个问题会是什么原因?
      

  2.   

    贴出代码来 让大家看看
    给出校验框架的xml文件及jsp还有
    你的action中有validation方法吗?
      

  3.   

    struts2的action不是单例模式,每提交一次就会生成一个对象,你可以在action中加入以下代码查看Map对象中的验证信息public void validate() {

        Map map = this.getFieldErrors();
        Set set = map.keySet();    for (Iterator iter = set.iterator(); iter.hasNext();){
    System.out.println(map.get(iter.next()));
        }
    }
    解决方法:我用的是spring管理action,在bean中加入scope="prototype"就可以了例如:
    <bean id="userAction" class="com.test.action.user.UserAction" scope="prototype">
      

  4.   

    谢谢楼上的啊。我先试试你的方法。。我找到了另外的一种方法解决,那就是在Action中实现Preparable接口。在实现Preparable接口的方法中调用
    this.clearErrorsAndMessages();来清除所有上次生成的错误。