如果我有一个加载用户对象的处理程序拦截器,将它添加到请求attri,我是否转换为获取对象?

时间:2010-07-20 02:48:01

标签: java spring spring-mvc freemarker

我计划创建一个Handler拦截器,它将在调用控制器之前触发(或者我将执行此操作前的触发)。

然后我将检查用户的cookie,并根据cookie中的sessionid加载用户对象。

然后我将用户对象添加到请求属性。

现在,如果我想在控制器操作中检索用户对象,是否要将其转换为(用户)?

我相信我的freemarker模板我可以做$ {user.name}正确吗?或者是user.getUsername?

1 个答案:

答案 0 :(得分:2)

首先,您最好将用户置于会话中,以便Cookie>每次请求都不会发生用户转换。

其次,您可以通过调用

从那里(会话/请求)获取它
User user = (User) session.getAttribute(USER_KEY); // this is s String constant

或者,您可以创建一个类UserHolder,在其中传递HttpSession并向您提供用户,从而节省您的控制器中的演员阵容。

HttpServletRequest可以使用相同的方法。