转自:http://hi.baidu.com/9126nono/blog/item/d473922bbf120c2ad42af1ba.html
scope=prototype
2008年11月17日 星期一 13:19
在使用freemarker做struts2校验时,当验证无法通过时,会打印错误信息,而且还一直打印之前的错误信息。因为在配置spring的bean是忘了写scope="prototype",所以每次添加时都显示最后一次访问过的记录找了很长时间,struts2的验证一旦有错,页面就过不了,而且一直把原来的错误信息打印出来。 login.ftl: <#if !(fieldErrors.isEmpty())><#t/> <#list fieldErrors.keySet() as fieldName><#t/> <ul style="color: red;"> <#list fieldErrors[fieldName] as error><#t/> <li>${error}</li> </#list><#t/> </ul> </#list><#t/> </#if><#t/> 原来是spring bean出了问题。 scope="prototype" 会在该类型的对象被请求时创建一个新的action对象。如果没有配置scope=prototype则添加的时候不会新建一个action,他任然会保留上次访问的过记录的信息。 <bean id="assetAction" class="com.abc.action.AssetAction" scope="prototype"> |