参考: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 的用法的更多相关文章

  1. springMVC @ModelAttribute学习

    springMVC @ModelAttribute学习 博客分类: Spring   @ModelAttribute 绑定请求参数到命令对象 @ModelAttribute一个具有如下三个作用: ①绑 ...

  2. springMVC注解用法:@modelattribute的用法

    在Spring MVC里,@ModelAttribute通常使用在Controller方法的参数注解中,用于解释model entity,但同时,也可以放在方法注解里. 如果把@ModelAttrib ...

  3. SpringMVC @ModelAttribute注解

    /**     * 1. 有 @ModelAttribute 标记的方法, 会在每个目标方法执行之前被 SpringMVC 调用!      * 2. @ModelAttribute 注解也可以来修饰 ...

  4. @RequestMapping @SessionAttributes @ModelAttribute注解用法

    简介: @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestM ...

  5. SpringMVC @ModelAttribute详解

    被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用. 我们编写控制器代码时,会将保存方法独立 ...

  6. SpingMVC ModelAttribute的用法

    @Controller @RequestMapping(value = "/test") public class TestController { @RequestMapping ...

  7. springmvc中messageConverter用法

    解决StringHttpMessageConverter乱码问题问题: 当我们将字符串对象通过springmvc传回浏览器时,因为StringHttpMessageConverter消息转换器中默认的 ...

  8. SpringMVC @ModelAttribute 详解

    [@Controller]4 详解@ModelAttribute http://blog.sina.com.cn/s/blog_6d3c1ec601017q4p.html A.@ModelAttrib ...

  9. springMVC @ModelAttribute功能

    @ModelAttribute功能:将数据模型回写到页面 如: public String validate(@Valid @ModelAttribute("user") User ...

随机推荐

  1. C#导出大量数据到excel,怎么提升性能

    一,要提升性能,我们先要知道耗时的地方在哪里 1,数据库查询,2,把数据组合成新集合循环嵌套太多 二,那我们怎么优化呢? 一,数据库查询,1>,数据库查询:如果数据量小,我们可以用临时datat ...

  2. luogu P5340 [TJOI2019]大中锋的游乐场

    传送门 要求经过路径汉堡的点和可乐的点个数之差绝对值\(\le k\),所以可以考虑dp,\(f_{i,j}\)表示到点\(i\),汉堡的点个数减可乐的点的个数为\(j\)的最短距离,注意一下负下标处 ...

  3. oracle数据库中的游标

    oracle中的游标,游标的概念与作用,游标的分类,游标的使用. 一,游标的概念与作用 摘自百度百科:游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次 ...

  4. C++------流星雨

    用C++实现模拟数字.字母流星雨,其主要用到链表.win32编程基础. demo实例: // DataRainDemo.cpp : 定义应用程序的入口点. // #include "stda ...

  5. 禁止input输入框历史记录

    <input type="text" autocomplete="off" />

  6. Linux-day-1

    1. ls    作用:列出文件信息,默认为当前目录下 常用选项:         -a: 列出所有的文件,包括所有以.开头的隐藏文件         -d: 列出目录本身,并不包含目录中的文件    ...

  7. python数字图像处理(二)关键镜头检测

    镜头边界检测技术简述 介绍 作为视频最基本的单元帧(Frame),它的本质其实就是图片,一系列帧通过某种顺序组成在一起就构成了视频.镜头边界是视频相邻两帧出现了某种意义的变化,即镜头边界反映了视频内容 ...

  8. libevent 网络库安装

    ./configure prefix=/tools/libevent make sudo make install

  9. 超级POM

    在一个有POM的文件夹下执行: mvn help:effective-pom 会输出一个超级POM文件,可以就该文件,进行分析.

  10. Spring Boot 2.x整合mybatis及druid数据源及逆向工程

    1逆向工程 1)db.properties #============================# #===== Database sttings =====# #=============== ...