大佬教程收集整理的这篇文章主要介绍了Spring MVC:将请求属性绑定到控制器方法参数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
好吧,我终于了解了模型的工作原理和@modelattribute
用途。这是我的解决方案。
@Controller
class MyController
{
@modelattribute("user")
public User getUser(httpServletrequest request)
{
return (User) request.getAttribute("user");
}
@requestMapPing(value = "someurl", method = requestMethod.GET)
public String HandleSomeUrl(@modelattribute("user") User user)
{
// ... do some stuff
}
}
getUser()
标有@modelattribute
注解的方法将自动填充User
user
标有的所有参数@modelattribute
。因此,当调用HandleSomeUrl方法时,调用看起来像@H_204_3@myController.HandleSomeUrl(MyController.getUser(request))。至少这是我的想象。很棒的事情是,用户也可以从JsP视图进行访问,而无需任何进一步的努力。
这完全可以解决我的问题,但是我还有其他问题。我可以在这些地方放置这些@modelattribute
方法,使它们对我所有的控制器都通用吗?我可以以某种方式从preHandle()
拦截器的方法内部添加模型属性吗?
在Spring MVC中,将请求 参数
绑定到处理请求的方法参数很容易。我只是用@requestParameter("name")
。但是我可以对request 属性
做同样的事情吗?当前,当我想访问request 属性时 ,我必须执行以下操作:
@H_204_3@myClass obj = (MyClass) request.getAttribute("attr_name");
但是我真的很想使用这样的东西:
@requestAttribute("attr_name") MyClass obj
不幸的是,这种方式行不通。我可以以某种方式扩展Spring功能并添加自己的“绑定器”吗?
编辑 (我要实现的目标)
:我将当前登录的用户存储在request属性中。因此,每当我要访问当前登录的用户(几乎在每种方法中都需要访问)时,都必须写此额外的行user =
(User)
request.getAttribute("user");
。我想使其尽可能短,最好将其作为方法参数注入。或者,如果您知道另一种如何在拦截器和控制器之间传递内容的方法,我将很高兴听到。
以上是大佬教程为你收集整理的Spring MVC:将请求属性绑定到控制器方法参数全部内容,希望文章能够帮你解决Spring MVC:将请求属性绑定到控制器方法参数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。