在mvc配置文件里添加一个配置
<mvc:interceptors>
<bean class="xxx.xxx.SystemInterceptor" />
</mvc:interceptors>
实现类
/**
* 全局在线用户验证与赋值处理
* @author lee
*
*/
public class SystemInterceptor extends HandlerInterceptorAdapter{
@SuppressWarnings("unchecked")
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
UserInfo userinfo = UserContext.getCurUser();
request.getSession().setAttribute("isLogin", userinfo!=null);
request.getSession().setAttribute("onlineUser", userinfo);
//添加用户菜单
if(userinfo!=null){
List<MenuItem> menus = (List<MenuItem>) CacheUtil.get("userMenu", userinfo.getUserId());
if(menus==null){
MyMenuService myMenuService = (MyMenuService) ContextHolder.getBean("myMenuService");
menus =myMenuService.findAllUserMenuChild(userinfo, MenuItem.ROOT_CODE);
CacheUtil.put("userMenu", userinfo.getUserId(), menus);
}
request.getSession().setAttribute("menu", menus);
}
return super.preHandle(request, response, handler);
}
}
UserInfo userinfo = UserContext.getCurUser();这个根据自己的session用户处理。
这样mvc所有页面都可以接收当前用户信息了