0
我正在創建我的第一個Spring博客,並嘗試在導航欄中設置記錄的用戶全名。不幸的是,sec:authentication =「name」給了我用戶的電子郵件,$ {user.fullname)不會呈現任何東西。我想在文章控制器中加入以下代碼:Spring和Thymeleaf會話屬性
@GetMapping("/")
public String index(Model model) {
List<Article> articles = this.articleRepository.findAll();
Object currentUser = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if ("anonymousUser".equals(currentUser.toString())) {
model.addAttribute("username","GUEST");
} else {
UserDetails user = (UserDetails) currentUser;
String name = this.userRepository.findByEmail(user.getUsername()).getFullName();
model.addAttribute("username",name);
}
model.addAttribute("view", "home/index");
model.addAttribute("articles", articles);
return "base-layout";
}
它起作用了。不過,我想在任何地方使用它,現在我只能在「/」中使用它。請諮詢我如何修改代碼,以便能夠在所有模板中使用用戶名。
感謝您的答案,遺憾的問題,我應該在控制器文件夾中創建@ControllerAdvice爲一個新文件或者我應該在控制器中添加呢? –
我想通了,非常感謝你!問題已解決 –
很高興你知道,我是afk。你能接受答案嗎? –