在 Spring MVC 中,很容易将请求参数绑定到处理请求的方法参数。我只是用@RequestParameter("name")
. 但是我可以对请求属性做同样的事情吗?目前,当我想访问请求属性时,我必须执行以下操作:
MyClass obj = (MyClass) request.getAttribute("attr_name");
但我真的很想改用这样的东西:
@RequestAttribute("attr_name") MyClass obj
不幸的是,它不能以这种方式工作。我可以以某种方式扩展 Spring 功能并添加我自己的“绑定器”吗?
编辑 (我想要实现的目标):我将当前登录的用户存储在请求属性中。因此,每当我想访问当前登录的用户(几乎在每个方法中)时,我都必须编写这个额外的行user = (User) request.getAttribute("user");
。我想让它尽可能短,最好将它作为方法参数注入。或者,如果您知道如何通过拦截器和控制器传递某些东西的另一种方式,我会很高兴听到它。