问题描述:在做Springboot项目的时候出现如下错误
javax.servlet.ServletException: Cannot expose session attribute 'user' because of an existing model object of the same name
前端模板用的是freemarker,解决方法如下:
我们除了在pom.xml里面导入了freemarker模板依赖之外,还应当在springboot的配置文件中对freemarker上的session进行配置。
freemarker依赖库如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
其中springboot中application.properties配置如下:
#将session的属性暴露出来给后台
spring.freemarker.expose-session-attributes=true
#暴露freemarker的宏定义
spring.freemarker.expose-spring-macro-helpers=true
#设置freemarker的后缀
spring.freemarker.suffix=.ftl
#设置freemarker上时间的显示格式
spring.freemarker.settings.datetime_format=yyyy-MM-dd HH:mm:ss
#设置freemarker编码格式
spring.freemarker.settings.default_encoding=UTF-8
#设置自动引入的文件
spring.freemarker.settings.auto_import=common/common.ftl as common
#设置允许session被重写(这个就是引起我们错误的源头)
spring.freemarker.allow-session-override=true
其中解决错误的路径来源如下: