本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何在没有 spring mvc 中的模型对象的情况下向会话添加属性?

发布于2025-01-18 21:42     阅读(1013)     评论(0)     点赞(13)     收藏(0)


我有一个像这样的课程:

@Controller(value = "services")
@RequestMapping("/")
@SessionAttributes({"SESSIONID"})
public class Services {

   @RequestMapping("/user/loginStatic")
   @ModelAttribute("SESSIONID")
   public LoginResponseBean loginStatic(String username){
       LoginResponseBean result = otherClass.login(username);
       retrun result;
   }
}

我的问题:此代码导致在会话中存储“result”对象,但我想在会话中存储“result.getSessionId()”。

我无法将“Model model”添加到“loginStatic”方法的输入参数中,因为这会改变方法签名,而我现在无法做到这一点。而且我无法明确获取 http 会话并在其中设置属性(由于其他一些副作用)。我该怎么做?谢谢。


解决方案


您可以使用<mvc:interceptors/>注册一个自定义的拦截器HandlerInterceptor,该拦截器将应用于一个、多个或所有控制器。例如,以下是如何为所有控制器注册一个拦截器:

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <bean class="a.b.c.MyHandlerInterceptorAdapter"/>
    </mvc:interceptor>
</mvc:interceptors>

另请参阅mvc-config-interceptorsmvc-handlermapping-interceptor文档以了解更多详细信息。

注意:链接了 Spring 3.2 文档,因此您可能需要更改 URL 中的版本号以匹配您正在使用的 Spring 版本。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/695224/160e6b557a93eab3e5fd/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

13 0
收藏该文
已收藏

评论内容:(最多支持255个字符)