我有一个实体用户,我希望每个 Controller 的每个方法都可以访问已登录的用户,而无需输入以下内容:
model.addAttribute(userDao.getuser(principal.getUsername()));
最佳答案
您可以实现一个简单的HandlerInterceptorAdapter
,它将在调用处理程序后将用户实例添加到模型中。
class UserAddingHandlerInterceptor extends HandlerInterceptorAdapter {
// Autowire dependencies...
private static final String ATTRIBUTE = "user";
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView) throws Exception {
if (modelAndView != null && !modelAndView.getModelMap().hasAttribute(ATTRIBUTE) {
modelAndView.addObject(ATTRIBUTE, userDao.getuser(principal.getUsername()));
}
}
}
关于java - 包括登录方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23696783/