@ModelAttribute 注解
时间:2022-05-12
本文章向大家介绍@ModelAttribute 注解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近用到了@ModelAttribute,就顺便学习下。
- 在方法级别使用时,比如
1 @ModelAttribute
2 public void addAttributes(Model model) {
3 model.addAttribute("msg", "hello world!");
4 }
在这个例子中,我们展示了一个方法,它将一个msg属性添加到Model中。
通常,在调用方法前,SpringMvc会始终先调用该方法,类似与我们用到的拦截器,过滤器。优先级别在方法中最高。(注意,只在同一个controller时)
1 @ModelAttribute("user1")
2 public void addAttributes(User user) {
3
4 }
在这里,ModelAttribute有了一个user1,然后参数是user,所以在Model中会存在2个对象,user和user1
- 在方法中,
1 @RequestMapping(value = "/addEmployee", method = RequestMethod.POST)
2 public String submit(@ModelAttribute("employee") Employee employee) {
3
4 return "employeeView";
5 }
参数会中模型中查找,也就是比如我们提交一个form表单时,可以使用这种方法来获取一个对象,比如会先在model中先获取employee的对象,如果获取不到就会先通过反射来实例化,然后从request里面的值来set实例化的对象,然后把这个对象添加到model中
- 在类级别中
- 在类级别中使用@SessionAttributes,作用是在controller中共享这个model,直到org.springframework.web.bind.support.SessionStatus#setComplete会清空session值,或者是session过期
1 @Controller
2 @RequestMapping("user")
3 @SessionAttributes("test")
4 public class TestController {
}
1 @Controller
2 @RequestMapping("user")
3 @SessionAttributes("test")
4 public class TestController {
5
6 @RequestMapping(value = "test1")
7 public String test1(HttpServletRequest request) {
8 request.getSession().setAttribute("test",user);
9
10 }
11
12 @RequestMapping(value = "test2")
13 public String test2(@ModelAttribute("test") User user,SessionStatus sessionStatus) {
14 return null;
15 }
16 }
在这个代码中,会先调用test1再调用test2,因为在test1中设置test,因为使用了@SessionAttributes("test"),会确保test先存在
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
- 对python 命令的-u参数详解
- ThinkPHP5.1+Ajax实现的无刷新分页功能示例
- Python推导式简单示例【列表推导式、字典推导式与集合推导式】
- Python 从相对路径下import的方法
- Python随机生成身份证号码及校验功能
- 对python的bytes类型数据split分割切片方法
- PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
- python 实现数字字符串左侧补零的方法
- tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
- laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
- 使用Python实现微信提醒备忘录功能
- 对web.py设置favicon.ico的方法详解
- PHP pthreads v3下同步处理synchronized用法示例
- 浅谈pycharm的xmx和xms设置方法