Reputation: 995
I want to add common used attribute in model for every controller.
Upvotes: 1
Views: 1247
Reputation: 995
HandlerInterceptorAdapter can be used to intercept the request. For example, you can override preHandle to validate the session, and add the user to model in postHandle.
public class SessionValidator extends HandlerInterceptorAdapter{
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if (session == null || session.getAttribute("user") == null) {
return false;
}
return super.preHandle(request, response, handler);
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
HttpSession session = request.getSession();
if (modelAndView != null) {
modelAndView.getModelMap().addAttribute("user", session.getAttribute("user"));
}
}
}
Upvotes: 1