@ModelAttribute一个具有如下三个作用:

①绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑

定流程,而且自动暴露为模型数据用于视图页面展示时使用;

②暴露表单引用对象为模型数据:放在处理器的一般方法(非功能处理方法)上时,是为表单准备要展示的表单引用

对象,如注册时需要选择的所在城市等,而且在执行功能处理方法(@RequestMapping 注解的方法)之前,自动添加

到模型对象中,用于视图页面展示时使用;

③暴露@RequestMapping 方法返回值为模型数据:放在功能处理方法的返回值上时,是暴露功能处理方法的返回值为

模型数据,用于视图页面展示时使用。

在Spring MVC里,@ModelAttribute通常使用在Controller方法的参数注解中,用于解释model entity,

但同时,也可以放在方法注解里。

如果把@ModelAttribute放在方法的注解上时,代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法

一:@ModelAttribute应用到Controller方法的参数注解中

@Controller
@RequestMapping(value = "application")
public class ApplicationController{
public String test1(@ModelAttribute("user") UserModel user) { }
}

二:@ModelAttribute放在方法上》该Controller的所有方法在调用前,先执行此@ModelAttribute方法

@Controller
@RequestMapping(value = "application")
public class ApplicationController{
@ModelAttribute("basePath")
public String basePath(HttpServletRequest request){
String basePath = request.getContextPath();
return basePath.endsWith("/") ? basePath.substring(0, basePath.length() - 1) : basePath;
}
}

最新文章

  1. Java迭代器
  2. r0遍历系统进程方法总结
  3. 可输入自动匹配Select——jquery ui autocomplete
  4. Python学习笔记7-把函数当参数传递、指定可变参数
  5. iOS应用程序内存查看工具
  6. MyISAM 存储引擎的特点及优化方法
  7. JMeter入门(01)概念和样例
  8. Robust Locally Weighted Regression 鲁棒局部加权回归 -R实现
  9. python 编码 自动加双斜杠问题
  10. JIRA日期格式设置
  11. BZOJ-6-2460: [BeiJing2011]元素-线性基
  12. EntityFreamWork 项目总结
  13. bind封装
  14. Servlet的补充知识
  15. 【消息】Pivotal Pivots 开源大数据处理的核心组件
  16. css学习_css复合选择器
  17. 运行tomcat报Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]"
  18. Python 编程快速上手 第九章 组织文件
  19. LayUI——数据表格使用
  20. 爬虫实战1:使用requests和正则爬取电影信息

热门文章

  1. Java泛型总结---基本用法,类型限定,通配符,类型擦除
  2. openfire Android学习(一)----实现用户注册、登录、修改密码和注销等
  3. 【GitHub】给GitHub上的ReadMe.md文件中添加图片怎么做 、 gitHub创建文件夹
  4. 自己定义ImageView,实现点击之后算出点击的是身体的哪个部位
  5. HDU 2648(搜索题,哈希表)
  6. Android自己定义View的实现方法
  7. iOS 倒计时NSTimer
  8. Linux基础(3)- 正文处理命令及tar命令、vi编辑器、硬盘分区、格式化及文件系统的管理和软连接、硬连接
  9. Audio原理图设计
  10. CentOS7配置opencv for python && eclipse c/c++[更新]