簡體   English   中英

彈出會話出錯[由於現有的同名模型對象,無法公開會話屬性'user']

[英]Error with spring session [ Cannot expose session attribute 'user' because of an existing model object of the same name]

嗨,我得到以下錯誤

javax.servlet.ServletException: Cannot expose session attribute 'user' because of an existing model object of the same name
    org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:141)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)

@Controller
@RequestMapping("/admin")
@SessionAttributes("user")
public class AdminHome {    
    @RequestMapping("home")
    public String homePage(HttpSession session, ModelMap map) {
        map.addAttribute(org.brahmaa.ads.util.impl.UserInfo.getPrincipal(session));
        return "admin/home";
    }
}

我突然也遇到了這個例外。 結果我添加了這個Freemarker屬性:

<property name="exposeSessionAttributes" value="true"/>

據我了解, map.addAttribute(org.brahmaa.ads.util.impl.UserInfo.getPrincipal(session)); 從會話中提取user屬性並將其放入模型中。 @SessionAttriubtes指示Spring自動執行相同操作。 因此他們發生沖突 您應該只使用其中一種方法,而不是同時使用這兩種方法。

我在spring-boot中使用了屬性

spring.freemarker.allow-session-override=true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM