如果使用SSH框架,把Action托付给Spring来管理,在第一次提交验证失败之后,即使提交正确数据也无法通过验证,
原因是spring注入的Action都是sington的。
解决方法一:需要把注入的Action改成scope="prototype",
(举例:<bean id="SshFlowAction" class="lcz.test.java2excel.action.SshFlowAction" scope="prototype"></bean>)
这样每次访问Action,就创建一个新的Action。但是这样很麻烦,当然,至少有一个解决方法。
解决方法二:在提交的表单中增加validate="true",
(举例:<s:form action="login" validate="true" method="post"> )
这样就OK了。至于原因,正在思考中。。。。。。
有知道原因者,请不吝赐教。
在使用SSH框架并结合Spring管理Action时,若第一次提交验证失败后,后续正确提交仍无法通过验证,原因是注入的Action为singleton类型。解决方法之一是将Action注入改为prototype类型,确保每次访问都创建新的实例;另一种方法是在表单中增加validate属性为true,以重新执行验证流程。原因仍在深入探讨中。
910

被折叠的 条评论
为什么被折叠?



