Spring采用velicity视图时,使用@SessionAttributes("")注解出现Cannot expose session attribute 'user' because of an

来源:互联网 发布:seo怎么建站 编辑:程序博客网 时间:2024/06/07 22:25

Spring采用velicity视图时,使用@SessionAttributes("")注解出现Cannot expose session attribute 'user' because of an existing model object of the same name异常问题

错误原因:

因为request  session默认是不会加入velicity context中的,所以要配置上

exposeRequestAttributes和exposeSessionAttributes.但是问题来了,往session加入重复值是就会出现 because of an existing model object of the same name异常,

解决方法是:添加属性<property name="allowSessionOverride" value="true"/> 允许session覆盖旧值

VelocityViewResolver配置

<bean id="viewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="suffix" value=".vm" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="allowSessionOverride" value="true"/>
<property name="dateToolAttribute" value="dateTool" />
<property name="toolboxConfigLocation" value="/WEB-INF/toolbox.xml" />
</bean>

0 0