SpringMvc @ModelAttribute 的用法
参考:Spring 3.x 企业应用开发实战 第15章:SpringMvc 页码:532
ModelAttribute 从字面上解释就是模型的属性。
对于MVC框架来说是模型数据是最重要的,因为控制(C)是为了产生模型数据(M),而视图(V)则是为了渲染模型数据。
Spring Mvc提供了多种途径输出模型数据。
1.ModelAndView 返回ModelAndView对象 public ModelAndView request();
2.@ModeAttribute 在入参的时候标准该注解,入参的对象就会放到数据模型中。 public String request(@ModelAttribute(“user”)User user);
3.Map 及Model 添加此类入参 public String request(Model model,Map map);
4.@SessionAttribute
从上可知 @ModelAttribute 注解就是用来输出模型数据的。
第一种用法:入参的时候加入注解
@RequestMapping("testModelAttribute")
public String testModelAttribute(@ModelAttribute("user") User user, ModelMap modelMap)
{
user.setUserName("mindong");
modelMap.put("password",123456);
return "test";
}
在test.jsp页面上使用 ${user.userName}<br> ${password} 就可以获取user的属性和你设置的属性了。
第二种用法:在方法前加入注解
@RequestMapping("testModelAttribute")
public String testModelAttribute(@ModelAttribute("user") User user, ModelMap modelMap) 1
{
user.setUserName("mindong");
modelMap.put("password",123456);
return "test";
}
@ModelAttribute("user")
public User initUser()
{
User user = new User();
user.setUserId(1);
user.setUserName("mindong");
return user;
}
调用testModelAttribute方法时,会先去调用使用了@ModelAttribute的 initUser 方法,并将返回值添加到模型中,由于InitUser方法的@ModelAttribute 和 testModelAttribute方法入参的@ModelAttribute 属性相同,都是user。
这是SpringMvc会将initUser中获得的属性先赋值给testModelAttribute的user,然后根据Http请求传参对user进行覆盖,这样得到一个整合版本的user对象。
SpringMvc @ModelAttribute 的用法的更多相关文章
- springMVC @ModelAttribute学习
springMVC @ModelAttribute学习 博客分类: Spring @ModelAttribute 绑定请求参数到命令对象 @ModelAttribute一个具有如下三个作用: ①绑 ...
- springMVC注解用法:@modelattribute的用法
在Spring MVC里,@ModelAttribute通常使用在Controller方法的参数注解中,用于解释model entity,但同时,也可以放在方法注解里. 如果把@ModelAttrib ...
- SpringMVC @ModelAttribute注解
/** * 1. 有 @ModelAttribute 标记的方法, 会在每个目标方法执行之前被 SpringMVC 调用! * 2. @ModelAttribute 注解也可以来修饰 ...
- @RequestMapping @SessionAttributes @ModelAttribute注解用法
简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestM ...
- SpringMVC @ModelAttribute详解
被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用. 我们编写控制器代码时,会将保存方法独立 ...
- SpingMVC ModelAttribute的用法
@Controller @RequestMapping(value = "/test") public class TestController { @RequestMapping ...
- springmvc中messageConverter用法
解决StringHttpMessageConverter乱码问题问题: 当我们将字符串对象通过springmvc传回浏览器时,因为StringHttpMessageConverter消息转换器中默认的 ...
- SpringMVC @ModelAttribute 详解
[@Controller]4 详解@ModelAttribute http://blog.sina.com.cn/s/blog_6d3c1ec601017q4p.html A.@ModelAttrib ...
- springMVC @ModelAttribute功能
@ModelAttribute功能:将数据模型回写到页面 如: public String validate(@Valid @ModelAttribute("user") User ...
随机推荐
- Spark-Streaming获取kafka数据的两种方式:Receiver与Direct的方式
简单理解为:Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据 Receiver 使用Kafka的高层次Consumer API来 ...
- react面试题——理解setState(源码object.assign)
setState是异步的方式 this.setState({ counter:this.state.counter+1 }) console.log(this.state.counter) s ...
- 原生js格式化json和格式化xml的方法
在工作中一直看各位前辈的博客解决各种问题,对我的帮助很大,非常感谢! 之前一直比较忙没有写博客,终于过年有了点空闲时间,可以把自己积累的东西分享下,笔记中的部分函数不是自己写的,都是工作中一点点积累的 ...
- nodejs 操作 mysql
1.安装插件 npm install mysql 2.调用代码 var mysql = require('mysql') var connection = mysql.createConnection ...
- 022-OpenStack 中虚拟机hostname问题
第一种: openstack中直接使用 hostnamectl 修改主机名,主机名在内核中的信息会被立即修改,但是当系统重启之后,主机名又重新变成原来的主机名称了.openstack主机名由cloud ...
- DevExpress v19.1新版亮点——WinForms篇(三)
行业领先的.NET界面控件DevExpress v19.1终于正式发布,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WinForms v19.1中新增的一些控 ...
- 一、创建并打包Cordova的App工程
1.创建ionic4 & Angular项目 ionic start myApp tabs --type=angular 2.添加ios和android平台 ionic cordova pre ...
- [原创]Laravel 基于redis队列的解析
目录 参考链接 本文环境 为什么使用队列 Laravel 中的队列 分发任务 任务队列 Worker Last-Modified: 2019年5月10日11:44:18 参考链接 使用 Laravel ...
- unittest----skip(跳过用例)
我们在执行测试用例时,有时有些用例时不需要执行的,这时就需要用到unittest给我们提供的跳过用例的方法 @unittest.skip(reason):强制跳过,不需要判断条件.reason是跳过原 ...
- 【机器人M号】题解
题目 题目描述 3030年,Macsy正在火星部署一批机器人. 第1秒,他把机器人1号运到了火星,机器人1号可以制造其他的机器人. 第2秒,机器人1号造出了第一个机器人--机器人2号. 第3秒,机器人 ...