![[@Controller]4 详解@ModelAttribute.docx_第1页](http://file.renrendoc.com/FileRoot1/2019-12/28/93c58c82-0236-4b37-85d3-49f473135556/93c58c82-0236-4b37-85d3-49f4731355561.gif)
![[@Controller]4 详解@ModelAttribute.docx_第2页](http://file.renrendoc.com/FileRoot1/2019-12/28/93c58c82-0236-4b37-85d3-49f473135556/93c58c82-0236-4b37-85d3-49f4731355562.gif)
![[@Controller]4 详解@ModelAttribute.docx_第3页](http://file.renrendoc.com/FileRoot1/2019-12/28/93c58c82-0236-4b37-85d3-49f473135556/93c58c82-0236-4b37-85d3-49f4731355563.gif)
![[@Controller]4 详解@ModelAttribute.docx_第4页](http://file.renrendoc.com/FileRoot1/2019-12/28/93c58c82-0236-4b37-85d3-49f473135556/93c58c82-0236-4b37-85d3-49f4731355564.gif)
全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
A、ModelAttributeAnnotation that binds a method parameter or method return value to a named model attribute, exposed to a web view. Supported for RequestMapping annotated handler classes.在被RequestMapping注释的处理器类中,这个注释可以绑定一个方法参数或绑定一个方法的返回值到一个命名的模型属性,提供给一个视图。Can be used to expose command objects to a web view, using specific attribute names, through annotating corresponding parameters of a RequestMapping annotated handler method).可以用于把一个command对象提供给web视图,使用指定的属性名称,在被RequestMapping注释的处理器方法中注释相关参数。Can also be used to expose reference data to a web view through annotating accessor methods in a controller class which is based on RequestMapping annotated handler methods, with such accessor methods allowed to have any arguments that RequestMapping supports for handler methods, returning the model attribute value to expose.可以用于提供数据给一个web视图,通过注释处理器方法,这个方法允许有任何参数,返回的模型属性值被提供。A.1、 ModelAttribute的属性valueThe name of the model attribute to bind to.绑定的模型属性的名称。The default model attribute name is inferred from the declared attribute type (i.e. the method parameter type or method return type), based on the non-qualified class name: e.g. orderAddress for class mypackage.OrderAddress, or orderAddressList for List.默认的模型属性名称自动判断声明的属性类型(如,方法参数类型或方法返回类型)。如这个值是orderAddress,就对于当前包. OrderAddress。B、ModelAttribute注释一个方法An ModelAttribute on a method indicates the purpose of that method is to add one or more model attributes. Such methods support the same argument types as RequestMapping methods but cannot be mapped directly to requests. Instead ModelAttribute methods in a controller are invoked before RequestMapping methods, within the same controller.被ModelAttribute注释的方法表示这个方法的目的是增加一个或多个模型(model)属性。这个方法和被RequestMapping注释的方法一样也支持RequestParam参数,但是它不能直接被请求映射。实际上,控制器中的ModelAttribute方法是在同一控制器中的RequestMapping方法被调用之前调用的。ModelAttribute methods are used to populate the model with commonly needed attributes for example to fill a drop-down with states or with pet types, or to retrieve a command object like Account in order to use it to represent the data on an HTML form. 被ModelAttribute注释的方法用于填充model属性,例如,为下拉菜单填充内容,或检索一个command对象(如,Account),用它来表示一个HTML表单中的数据。A controller can have any number of ModelAttribute methods. All such methods are invoked before RequestMapping methods of the same controller.一个控制器可以有任意数量的ModelAttribute方法。所有这些方法都在RequestMapping方法被调用之前调用。Note the two styles of ModelAttribute methods. In the first, the method adds an attribute implicitly by returning it. In the second, the method accepts a Model and adds any number of model attributes to it.有两种类型的ModelAttribute方法。一种是:加入只一个属性,用方法的返回类型隐含表示。另一种是:方法接受一个Model类型的参数,这个model可以加入任意多个model属性。B.1、ModelAttribute注释void返回值的方法举例说明Controllerpublic class HelloWorldController ModelAttributepublic 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类型的参数。B.2、ModelAttribute注释返回具体类的方法举例说明ModelAttributepublic Account addAccount(RequestParam String number) return accountManager.findAccount(number);这种情况,model属性的名称没有指定,它由返回类型隐含表示,如这个方法返回Account类型,那么这个model属性的名称是account。这个例子中model属性名称有返回对象类型隐含表示,model属性对象就是方法的返回值。它无须要特定的参数。B.3、ModelAttribute(value=)注释返回具体类的方法举例说明Controllerpublic class HelloWorldController ModelAttribute(attributeName)public String addAccount(RequestParam String abc) return abc;RequestMapping(value = /helloWorld)public String helloWorld() return helloWorld;这个例子中使用ModelAttribute注释的value属性,来指定model属性的名称。model属性对象就是方法的返回值。它无须要特定的参数。B.4、ModelAttribute和RequestMapping同时注释一个方法举例说明Controllerpublic class HelloWorldController RequestMapping(value = /helloWorld.do)ModelAttribute(attributeName)public String helloWorld() return hi;这时这个方法的返回值并不是表示一个视图名称,而是model属性的值,视图名称由RequestToViewNameTranslator根据请求/helloWorld.do转换为helloWorld。Model属性名称有ModelAttribute(value=”)指定。C、ModelAttribute注释一个方法的参数An ModelAttribute on a method argument indicates the argument should be retrieved from the model. If not present in the model, the argument should be instantiated first and then added to the model.Once present in the model, the arguments fields should be populated from all request parameters that have matching names. This is known as data binding in Spring MVC, a very useful mechanism that saves you from having to parse each form field individually.ModelAttribute注释方法的一个参数表示应从模型model中取得。若在model中未找到,那么这个参数将先被实例化后加入到model中。若在model中找到,则请求参数名称和model属性字段若相匹配就会自动填充。这个机制对于表单提交数据绑定到对象属性上很有效。B.1、从model中获取It may already be in the model due to an ModelAttribute method in the same controller参数的值从当前控制器的ModelAttribute方法提供的model属性中获取。举例说明Controllerpublic 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) U
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现场处置方案编制课件
- 2025年能源行业CCS项目经济性研究报告:市场前景与投资建议
- 2025年物流行业物流园区智能化改造对物流行业行业政策法规的适应报告
- 山西省晋中市左权县2022-2023五年级上学期期中科学试题(含答案)
- 2026届贵州省贵阳市清镇北大培文学校贵州校区化学高一上期末考试试题含解析
- 2025年导游资格证专项训练试卷:导游业务与法规冲刺押题
- 2025年Python大数据处理培训试卷:实战演练与冲刺押题
- 2025年秋季初级经济师职业资格考试 经济基础知识模拟试卷及答案
- 2025年注册会计师(CPA)考试 会计科目历2025年真题解析与模拟试卷
- 江西省白鹭洲中学2026届高二化学第一学期期中学业水平测试试题含解析
- 企业信息化项目建设进度和成果汇报课件
- 高等数学期末试卷及答案
- 从0开始跨境电商-第三章-阿里巴巴国际站入门-OK
- 新能源电站远程监控系统建设方案
- 《紫藤萝瀑布》《丁香结》《好一朵木槿花》
- 2023柔性棚洞防护结构技术规程
- 河流地貌的发育 - 侵蚀地貌
- 离网光伏发电系统详解
- 广告文案写作(第二版)全套教学课件
- 《国家电网公司电力安全工作规程(配电部分)》
- 金融学黄达ppt课件9.金融市场
评论
0/150
提交评论