本文主要给大家介绍了关于java中@ModelAttribute使用的相关资料,分享出来供大家参考学习,下面来一起看看详细的介绍:

一、@ModelAttribute注释方法
例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。
(1)@ModelAttribute注释void返回值的方法
@Controller
public class HelloWorldController {
@ModelAttribute
public void populateModel(@RequestParam String abc, Model model) {
model.addAttribute("attributeName", abc);
}
@RequestMapping(value = "/helloWorld")
public String helloWorld() {
return "helloWorld";
}
}
这个例子,在获得请求/helloWorld 后,populateModel方法在helloWorld方法之前先被调用,它把请求参数(/helloWorld?abc=text)加入到一个名为attributeName的model属性中,在它执行后helloWorld被调用,返回视图名helloWorld和model已由@ModelAttribute方法生产好了。
这个例子中model属性名称和model属性对象有model.addAttribute()实现,不过前提是要在方法中加入一个Model类型的参数。
当URL或者post中不包含次参数时,会报错,其实不需要这个方法,完全可以把请求的方法写成,这样缺少此参数也不会出错
@RequestMapping(value = "/helloWorld")
public String helloWorld(String abc) {
return "helloWorld";
}
(2)@ModelAttribute注释返回具体类的方法
@ModelAttribute
public Account addAccount(@RequestParam String number) {
return accountManager.findAccount(number);
}
这种情况,model属性的名称没有指定,它由返回类型隐含表示,如这个方法返回Account类型,那么这个model属性的名称是account。
这个例子中model属性名称有返回对象类型隐含表示,model属性对象就是方法的返回值。它无须要特定的参数。
(3)@ModelAttribute(value="")注释返回具体类的方法
@Controller
public class HelloWorldController {
@ModelAttribute("attributeName")
public String addAccount(@RequestParam String abc) {
return abc;
}
@RequestMapping(value = "/helloWorld")
public String helloWorld() {
return "helloWorld";
}
}
这个例子中使用@ModelAttribute注释的value属性,来指定model属性的名称。model属性对象就是方法的返回值。它无须要特定的参数。
(4)@ModelAttribute和@RequestMapping同时注释一个方法
@Controller
public class HelloWorldController {
@RequestMapping(value = "/helloWorld.do")
@ModelAttribute("attributeName")
public String helloWorld() {
return "hi";
}
}
这时这个方法的返回值并不是表示一个视图名称,而是model属性的值,视图名称由RequestToViewNameTranslator根据请求"/helloWorld.do"转换为逻辑视图helloWorld。
Model属性名称有@ModelAttribute(value=””)指定,相当于在request中封装了key=attributeName,value=hi。
二、@ModelAttribute注释一个方法的参数
(1)从model中获取
@Controller
public class HelloWorldController {
@ModelAttribute("user")
public User addAccount() {
return new User("jz","123");
}
@RequestMapping(value = "/helloWorld")
public String helloWorld(@ModelAttribute("user") User user) {
user.setUserName("jizhou");
return "helloWorld";
}
}
在这个例子里, @ModelAttribute("user") User user注释方法参数,参数user的值来源于addAccount()方法中的model属性。
此时如果方法体没有标注@SessionAttributes("user") ,那么scope为request,如果标注了,那么scope为session
(2)从Form表单或URL参数中获取(实际上,不做此注释也能拿到user对象)
@Controller
public class HelloWorldController {
@RequestMapping(value = "/helloWorld")
public String helloWorld(@ModelAttribute User user) {
return "helloWorld";
}
}
注意这时候这个User类一定要有没有参数的构造函数。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# spring
# 注释
# modelattribute注解
# modelattribute的用法
# java中@ModelAttribute注解的作用
# spring mvc中注解@ModelAttribute的妙用分享
# spring mvc中的@ModelAttribute注解示例介绍
# SpringMVC中@ModelAttribute注解的使用教程
# 返回值
# 好了
# 在这个
# 多个
# 在此
# 不需要
# 也能
# 要在
# 给大家
# 这种情况
# 不做
# 相关资料
# 这篇文章
# 报错
# 谢谢大家
# 表单
# 装了
# 转换为
# 中不
# 已由
相关文章:
网站代码制作软件有哪些,如何生成自己网站的代码?
建站VPS配置与SEO优化指南:关键词排名提升策略
北京网站制作网页,网站升级改版需要多久?
c# await 一个已经完成的Task会发生什么
Android滚轮选择时间控件使用详解
东莞专业制作网站的公司,东莞大学生网的网址是什么?
nginx修改上传文件大小限制的方法
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何用免费手机建站系统零基础打造专业网站?
如何用IIS7快速搭建并优化网站站点?
官网网站制作腾讯审核要多久,联想路由器newifi官网
网站制作大概多少钱一个,做一个平台网站大概多少钱?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
Swift开发中switch语句值绑定模式
再谈Python中的字符串与字符编码(推荐)
如何用美橙互联一键搭建多站合一网站?
建站之星代理商如何保障技术支持与售后服务?
教程网站设计制作软件,怎么创建自己的一个网站?
5种Android数据存储方式汇总
如何快速搭建高效服务器建站系统?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
设计网站制作公司有哪些,制作网页教程?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
存储型VPS适合搭建中小型网站吗?
盐城做公司网站,江苏电子版退休证办理流程?
如何快速生成凡客建站的专业级图册?
网站制作软件有哪些,制图软件有哪些?
建站之星官网登录失败?如何快速解决?
如何在阿里云虚拟主机上快速搭建个人网站?
制作门户网站的参考文献在哪,小说网站怎么建立?
建站之星如何助力网站排名飙升?揭秘高效技巧
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何通过可视化优化提升建站效果?
如何在Windows虚拟主机上快速搭建网站?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
如何在宝塔面板创建新站点?
h5在线制作网站电脑版下载,h5网页制作软件?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
如何通过VPS建站实现广告与增值服务盈利?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
网站制作新手教程,新手建设一个网站需要注意些什么?
公司网站设计制作厂家,怎么创建自己的一个网站?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
如何在腾讯云免费申请建站?
企业微网站怎么做,公司网站和公众号有什么区别?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
如何获取开源自助建站系统免费下载链接?
*请认真填写需求信息,我们会在24小时内与您取得联系。