我计划创建一个Handler拦截器,它将在调用控制器之前触发(或者我将执行此操作前的触发)。
然后我将检查用户的cookie,并根据cookie中的sessionid加载用户对象。
然后我将用户对象添加到请求属性。
现在,如果我想在控制器操作中检索用户对象,是否要将其转换为(用户)?
我相信我的freemarker模板我可以做$ {user.name}正确吗?或者是user.getUsername?
答案 0 :(得分:2)
首先,您最好将用户置于会话中,以便Cookie>每次请求都不会发生用户转换。
其次,您可以通过调用
从那里(会话/请求)获取它User user = (User) session.getAttribute(USER_KEY); // this is s String constant
或者,您可以创建一个类UserHolder
,在其中传递HttpSession
并向您提供用户,从而节省您的控制器中的演员阵容。
HttpServletRequest
可以使用相同的方法。