spring MVC之使用@SessionAttributes时报异常
----------
异常用下:
javax.servlet.ServletException: Cannot expose session attribute 'user_1' because of an existing model object of the same name
注意:我的项目是spring mvc3.5+freemarker的,控制器中使用的注解。在把对象用@SessionAttributes注解入到session时,报错。
这个时候,我们只需要在spring mvc的配置文件中,把freemarker的视图配置,加上:
- <property name="allowSessionOverride" value="true"/>
完整的:
- <bean id="freemarderConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
- <property name="templateLoaderPath" value="/WEB-INF/ftl/" />
- <property name="freemarkerVariables">
- <map>
- <entry key="xml_escape" value-ref="fmXmlEscape" />
- </map>
- </property>
- <property name="freemarkerSettings">
- <props>
- <prop key="defaultEncoding">UTF-8</prop>
- <prop key="template_update_delay">5</prop>
- <prop key="url_escaping_charset">UTF-8</prop>
- <prop key="locale">zh_CN</prop>
- <prop key="boolean_format">true,false</prop>
- <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
- <prop key="date_format">yyyy-MM-dd</prop>
- <prop key="time_format">HH:mm:ss</prop>
- <prop key="number_format">0.######</prop>
- <prop key="whitespace_stripping">true</prop>
- </props>
- </property>
- </bean>
- <bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape" />
- <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
- <property name="cache" value="true" />
- <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>
- <property name="suffix" value=".html" />
- <property name="exposeRequestAttributes" value="true" />
- <!-- <property name="allowSessionOverride" value="true"/> -->
- <property name="exposeSessionAttributes" value="true" />
- <property name="exposeSpringMacroHelpers" value="true" />
- <property name="contentType" value="text/html;charset=UTF-8" />
- </bean>