当前位置: 首页 > 面试题库 >

如何使用Spring MVC将会话属性作为方法参数(参数)传递

孙绍辉
2023-03-14
问题内容

简而言之,我想要的是:

public String action(@SessionAttribute User user) {..}

代替

public String action(HttpSession session) {
     User user = session.getAttribute("user");
}

主要是为了:

  • 可读性
  • 单元测试

问题答案:

我找到了解决方案。

我们的想法是注册自定义WebArgumentResolverAnnotationMethodHandlerAdapter,它可以处理一个自定义的注释-
@SessionAttribute(或@SessionParam)。

param.getParameterName()如果未value指定,则可以使用其中张贴的代码的注释。



 类似资料:
  • 我有静态方法在我的类 这就是定义 这里用的是 这是我得到的一个错误 E0167类型为“void(TV_DepthCamAgent::)(int count,int copied_file)”的参数与类型为“void()(int,int)”的参数不兼容 错误C3867“TV_DepthCamAgent::progress_callback”:非标准语法;使用' 我做错了什么?

  • 我们正在构建一个与远程API通信的webapp。我想这样设计这个远程API的客户端: 关键是,我想在构建期间将凭据传递给这个客户端,并让所有其他方法使用这些凭据。我的第二个要求是我希望这个实例在会话中。 我在这里发现了如何传递动态构造函数参数。 我在这里发现了如何创建会话属性。 但我想不出一种方法来结合这两种技术。据我所知,您必须在自己的类getter方法中实例化会话属性。这种类似getter的方

  • 问题内容: 码: 当我尝试: 我在Eclipse中收到错误。 但当: 一切都好。为什么会有这种差异?谢谢。 问题答案: 因为语法是特殊的语法糖,仅在初始化数组变量时才适用。这是因为任务本身缺少类型信息;但是在赋值的特殊情况下,类型是从变量中完全推断出来的。 在第一个示例中,编译器知道您要分配给它(是),因此允许使用此语法。在后者中,您无需初始化变量(并且由于Java类型推断的弱点,它甚至也无法完全

  • 我有两种几乎相似的方法: 我想写一个通用函数,如下所示: 因此,我想让这样的东西发挥作用: 实际上,我找不到如何传递和作为参数。有什么建议吗?

  • 让我们以这个对象为例: 我知道我可以得到c的值,这样做: 或者这个: 但是我如何在函数中通过obj和列作为参数来获得c的值呢?

  • 在下面的代码中,我希望将'races.class'作为参数传递给方法'get allraces()'。我该怎么做?