我是Spring MVC的新手.目前我正在研究Spring MVC Showcase,它演示了Spring MVC Web框架的功能.
我有一些问题需要了解如何在此示例中处理自定义可解析的Web参数.
在实践中,我有以下情况.在我的home.Jsp视图中,我有以下链接:
ID="customArg" href="
此链接生成对URL的@R_502_6822@请求:“/ data / custom”
包含处理此请求的方法的控制器类具有以下代码:
@Controllerpublic class CustomArgumentController { @modelattribute voID beforeInvokingHandlerMethod(@R_502_6822@ServletRequest request) { request.setAttribute("foo","bar"); } @RequestMapPing(value="/data/custom",method=RequestMethod.GET) public @ResponseBody String custom(@RequestAttribute("foo") String foo) { return "Got 'foo' request attribute value '" + foo + "'"; }}
处理此@R_502_6822@请求的方法是custom().因此,单击上一个链接时,@R_502_6822@请求将由自定义方法处理.
我有一些问题需要了解@RequestAttribute注释到底做了什么.我认为,在这种情况下,它将名为foo的请求属性绑定到一个新的String foo变量.但是这个属性取自何处?这个变量是Spring采用的吗?
好的,我的想法是这个请求属性取自@R_502_6822@ServletRequest对象.我是这么认为的,因为在这个类中,我还有一个具有说话名称的beforeInvokingHandlerMethod()方法,所以看起来这个方法在@R_502_6822@ServletRequest对象中设置了一个名称= foo和value = bar的属性,然后所以custom()方法可以使用这个值.
实际上我的输出是:
Got ‘foo’ request attribute value ‘bar’
为什么在custom()方法之前调用beforeInvokingHandlerMethod()?
为什么beforeInvokingHandlerMethod()由@modelattribute注释注释?在这种情况下它意味着什么?
最佳答案RequestAttribute只是您在表单提交中传递的参数.让我们了解一个示例示例假设我有以下表格
现在,如果我有下面的控制器,它与请求URL映射,并与表单提交映射,如下所示.
@Controllerpublic class CustomArgumentController {@modelattributevoID beforeInvokingHandlerMethod(@R_502_6822@ServletRequest request) { request.setAttribute("foo","bar");}@RequestMapPing(value="/data/custom",method=RequestMethod.GET)public @ResponseBody String custom(@RequestAttribute("param1") String param1 ) { // Here,I will have value of param1 as test in String object which will be mapped my Spring itself}
总结 以上是内存溢出为你收集整理的java – 了解在Spring MVC中使用@ModelAttribute和@RequestAttribute注释全部内容,希望文章能够帮你解决java – 了解在Spring MVC中使用@ModelAttribute和@RequestAttribute注释所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)