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

Java 在SpringMVC中,如何在没有模型对象的情况下向会话添加属性?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有一门课,像: @Controller(value = "services") @RequestMapping("/") @SessionAttributes({"SESSIONID"}) public class Services { @RequestMapping("/user/loginStatic") @ModelAttribute("SESSIONID") public LoginResponseBean loginStatic(String username){

我有一门课,像:

@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>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <bean class="a.b.c.MyHandlerInterceptorAdapter"/>
    </mvc:interceptor>
</mvc:interceptors>

有关更多详细信息,请参阅和文档

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

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

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

有关更多详细信息,请参阅和文档


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

谢谢您的建议;但这并不能解决我的问题,因为我不应该(通过使用“(ServletRequestAttributes)RequestContextHolder.currentRequestAttributes())显式地获取“会话”。相反,我正在寻找另一个解决方案(如果存在!!),谢谢你的建议;但这并不能解决我的问题,因为我不应该(通过使用(ServletRequestAttributes)RequestContextHolder.currentRequestAttributes())。相反,我正在寻找另一个解决方案(如果存在!!)不,您必须在
loginStatic
的输入参数中添加
ModelMap model
,然后添加
model.addAttribute(“sessionId”,result.getSeesionId())
可以完成您的工作。我认为没有其他方法。不,您必须在
loginStatic
的输入参数中添加
ModelMap model
,然后
model.addAttribute(“sessionId”,result.getSeesionId())
可以完成您的工作。我认为没有其他方法。