struts2验证框架的验证信息重复出现

来源:互联网 发布:什么是淘宝众筹 编辑:程序博客网 时间:2024/04/29 01:04


使用Struts2 的验证框架,使用基于字段的校验,但验证信息重复多次出现, 第一次提交表单。某个数据不符合规则,就会出现一条错误信息。再次提交,上次显示的错误信息不消失,又多出一条一模一样的错误信息。提交几次,就会多显示几条一模一样的错误信息。 
 
经过查书上网考证,终于明白当Struts2 由 Spring 生成的时候,默认是singleton (单态行为),整个Spring容器中每一个Bean只有一个实例存在,程序每次请求该id 的Bean时,Spring 会返回同一个实例。因此可以把 Struts2 的action Bean 在程序中设置为 prototype(原型行为),每提交一次就会生成一个新的对象,将不再使用之前生成的Bean,从而解决验证消息重复出现问题。
 
解决方法:在Spring的配置文件中,在Action Bean中加入scope="prototype"就可以了例如:
 
<bean id="userAction" class="com.test.action.user.UserAction" scope="prototype">