要在每个 Freemarker 页面上显示用户的名称,我可以在每个 Controller 中调用 model.addAttribute
,如下所示:
@RequestMapping(value = "index",method=RequestMethod.GET)
public String index(Model model) {
model.addAttribute("currentUser", App.getCurrentUser());
return "index";
}
#index.ftl
<div>${currentUser.userName}</div>
该调用将出现在我的代码的任何地方。这真是一场噩梦。是否有其他方法(例如 AOP 或 Servlet Filter)将内容设置到页面中?
最佳答案
您可以使用拦截器来实现此目的,请检查:http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-handlermapping-interceptor
这种信息最好将其保存在保存用户配置文件的 session 范围 bean 上,而不是为每个 HTTP 请求重新加载它。
关于java - 在 SpringMVC 中通过 AOP 将一些内容设置到 Freemarker 页面中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23289997/