使用Struts2 验证框架,验证信息重复多次出现。
第一次提交表单。某个数据不符合规则,就会出现一条错误信息。再次提交,上次显示的错误信息不消失,又多出一条一模一样的错误信息。提交几次,就会多显示几条一模一样的错误信息。
试着将 input 改为 重定向 <result name="input" type="redirect">validate.jsp</result>
但是错误信息没提示了。
Google到
struts2的action不是单例模式,每提交一次就会生成一个对象,你可以在action中加入以下代码查看Map对象中的验证信息
解决方法:我用的是spring管理action,在bean中加入scope="prototype"就可以了例如:
<bean id="userAction" class="com.test.action.user.UserAction" scope="prototype">
scope="prototype" 会在该类型的对象被请求时创建一个新的action对象。如果没有配置scope=prototype则添加的时候不会新建一个action,他任然会保留上次访问的过记录的信息。
scope没有配置默认是singleton; 如果是singleton的话只生成单例的action这样所有的请求都会往同一个action中执行。所以就会出现这种情况:struts2校验再提交多条提示信息
关于scope属性可查看http://blog.csdn.net/cswhale/article/details/8867162#java