2016 - 2024

感恩一路有你

request setattribute 方法 modeattribute和requestbody直接区别?

浏览量:1401 时间:2021-03-11 13:22:41 作者:admin

modeattribute和requestbody直接区别?

@modelattribute的用法不同于@requestbody

@modelattribute有两种用法:一种是直接标记方法,另一种是标记方法的参数,两种标记方法的效果也不一样

一种。直接标记方法

部署后运行,点击页面测试按钮查看控制台输出,后台控制器不直接进入模型测试.do相反,首先执行标有@modeldattribute的init方法。应该理解,当同一控制器中的任何方法被标记为@modeldattribute annotation时,只要页面请求进入控制器,无论请求哪个方法,都将首先执行标记为@modeldattribute的方法。因此,我们可以使用@modeldattribute注释来进行一些初始化操作。当同一控制器中的多个方法被标记为@modeldattribute annotation时,所有被标记为@modeldattribute的方法都将依次执行,然后输入请求的方法。

当@requestmapping标记和@modelattribute同时标记在同一方法上时

点击测试页面,进入控制器后返回,页面报告404。这是因为在同一方法上标记两个注释时,逻辑视图名称不是返回值,而是请求的返回路径模型测试.do生成逻辑视图。在这里,我们修改代码,删除控制器上的@requestmapping标记,并修改下一个页面的请求路径,以便生成的视图路径与访问的页面路径相同。

点击测试页面,发现当一个方法同时有两个注解时,该方法的返回值将成为模型的返回值,关键是标记名

2、@modelattribute参数前标记

点击页面测试,而URL address传递的参数会显示在页面的文本框中,因为spring MVC会自动匹配页面传递的参数的name属性和后台控制器中方法的参数名。如果参数名称相同,则会自动匹配。如果控制器中的方法是封装的bean,它会在bean中自动匹配事实上,这个value方法不需要@modeldattribute注释,只要满足匹配要求,它也可以得到值

(1)HttpServletRequest类有setAttribute()方法,但没有setparameter()方法

(2)当两个web组件链接时,链接的组件通过getparameter()方法获取请求参数,例如欢迎.jsP和验证.jsp它们之间有联系,欢迎.jsp中有以下代码:

请输入用户名:验证.jsp以及您好.jsp他们之间的关系是向前的。验证.jsp希望您好.jsp传递当前用户名请求.setAttribute(“用户名”,用户名)%

request setattribute 方法 addattribute什么意思 requestattribute与model

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。