如果我有一个加载用户对象的处理程序拦截器,将其添加到请求属性,我是否要强制转换以获取对象?
我计划创建一个处理程序拦截器,它将在调用控制器之前触发(或者我将执行此预操作触发)。
然后我将检查用户的 cookie,并根据 cookie 中的 sessionid 加载用户对象。
然后,我将用户对象添加到请求属性中。
现在,如果我想在控制器操作中检索用户对象,是否将其转换为 (User) ?
我相信我的 freemarker 模板我可以正确执行 ${user.name} 吗?或者是 user.getUsername ?
I plan to create a Handler interceptor that will fire before the controller gets called (or I'll do this pre-action firing).
I will then check the user's cookie, and load the user object based on the sessionid in the cookie.
I will then add the user object to the request attributes.
Now if I want to retrieve the user object in my controllers action, do I cast it to (User) ?
I believe in my freemarker template I can just do ${user.name} correct? or is it user.getUsername ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,你最好把用户放在session中,这样cookie>用户转化不会在每次请求时发生。
其次,您可以通过调用从那里(会话/请求)获取它。
另外,您可以创建一个类
UserHolder
,在其中传递一个HttpSession
,它为您提供用户,从而避免控制器组中的强制转换。相同的方法可以用于
HttpServletRequest
。First, you'd better place the user in the session, so that the cookie > user conversion does not happen on each request.
Second, you can just get it from there (session/request) by calling
Alternatively, you can make a class
UserHolder
, where you pass anHttpSession
and it gives you the user, thus sparing the casts in your controller cote.The same approach can be used with
HttpServletRequest
.