本文主要给大家介绍了关于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注解的使用教程
# 返回值
# 好了
# 在这个
# 多个
# 在此
# 不需要
# 也能
# 要在
# 给大家
# 这种情况
# 不做
# 相关资料
# 这篇文章
# 报错
# 谢谢大家
# 表单
# 装了
# 转换为
# 中不
# 已由
相关文章:
网站代码制作软件有哪些,如何生成自己网站的代码?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
C#如何序列化对象为XML XmlSerializer用法
如何基于云服务器快速搭建网站及云盘系统?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
如何通过VPS搭建网站快速盈利?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何在宝塔面板中修改默认建站目录?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何通过网站建站时间优化SEO与用户体验?
建站主机选哪种环境更利于SEO优化?
网站制作价目表怎么做,珍爱网婚介费用多少?
微信推文制作网站有哪些,怎么做微信推文,急?
如何用美橙互联一键搭建多站合一网站?
如何快速搭建高效服务器建站系统?
如何撰写建站申请书?关键要点有哪些?
定制建站策划方案_专业建站与网站建设方案一站式指南
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
音乐网站服务器如何优化API响应速度?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
网站微信制作软件,如何制作微信链接?
制作网站外包平台,自动化接单网站有哪些?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
郑州企业网站制作公司,郑州招聘网站有哪些?
简单实现Android验证码
如何快速建站并高效导出源代码?
大型企业网站制作流程,做网站需要注册公司吗?
在线制作视频网站免费,都有哪些好的动漫网站?
制作公司内部网站有哪些,内网如何建网站?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
无锡营销型网站制作公司,无锡网选车牌流程?
C++中引用和指针有什么区别?(代码说明)
韩国服务器如何优化跨境访问实现高效连接?
网站按钮制作软件,如何实现网页中按钮的自动点击?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
建站之星备案流程有哪些注意事项?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
Python如何创建带属性的XML节点
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
香港服务器WordPress建站指南:SEO优化与高效部署策略
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
制作国外网站的软件,国外有哪些比较优质的网站推荐?
专业公司网站制作公司,用什么语言做企业网站比较好?
建站之星如何快速生成多端适配网站?
,交易猫的商品怎么发布到网站上去?
网站网页制作专业公司,怎样制作自己的网页?
*请认真填写需求信息,我们会在24小时内与您取得联系。