• Spring MVC 向页面传值,有4种方式:

    ModelAndView

    Map

    Model

    ModelMap

  • 使用后面3种方式,都是在方法参数中,指定一个该类型的参数。

  • Model

    Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类。

public class ExtendedModelMap extends ModelMap implements Model
  • ModelMap

    ModelMap的声明格式:
public class ModelMap extends LinkedHashMap<String, Object>
  • ModelMap或者Model通过addAttribute方法向页面传递参数,其中addAttribute方法参数有多种方式:
public ModelMap addAttribute(String attributeName, Object attributeValue){...}
public ModelMap addAttribute(Object attributeValue){...}
public ModelMap addAllAttributes(Collection<?> attributeValues) {...}
public ModelMap addAllAttributes(Map<String, ?> attributes){...}

  • 一个例子:

    Java代码:
@RequestMapping("/test")
public String test(Map<String,Object> map,Model model,ModelMap modelMap){
  map.put("names", Arrays.asList("john","tom","jeff"));
  model.addAttribute("time", new Date());
  modelMap.addAttribute("city", "beijing");
  modelMap.put("gender", "male");
  return "hello";
}

jsp 页面:

1、time:${requestScope.time}<br/>
2、names:${requestScope.names }<br/>
3、city:${requestScope.city }<br/>
4、gender:${requestScope.gender }

结果:

1、time:Sun Mar 08 16:35:58 CST 2017
2、names:[john, tom, jeff]
3、city:beijing
4、gender:male
  • ModelAndView 例子:
@RequestMapping(value = "/mergeModel")
public ModelAndView mergeModel(Model model) {
  model.addAttribute("a", "a"); //① 添加模型数据
  ModelAndView mv = new ModelAndView("success");
  mv.addObject("a", "update"); //② 在视图渲染之前更新③处同名模型数据
  model.addAttribute("a", "new"); //③ 修改①处同名模型数据
  //视图页面的a将显示为"update" 而不是"new"
  return mv;
}

Spring MVC 向页面传值-Map、Model、ModelMap、ModelAndView的更多相关文章

  1. Spring MVC 向页面传值-Map、Model和ModelMap

    原文链接:https://www.cnblogs.com/caoyc/p/5635878.html Spring MVC 向页面传值-Map.Model和ModelMap 除了使用ModelAndVi ...

  2. Spring MVC 向页面传值-Map、Model和ModelMap https://www.cnblogs.com/caoyc/p/5635878.html

    Spring MVC 向页面传值-Map.Model和ModelMap 除了使用ModelAndView方式外.还可以使用Map.Model和ModelMap来向前台页面创造 使用后面3种方式,都是在 ...

  3. MVC 向页面传值方式总结(2)

    MVC 向页面传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通View页面传一个Mo ...

  4. Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)

    题目Spring MVC 接收参数 MapListDate2个BeanJSON Spring MVC接收参数 -Map Spring MVC接收参数 -List Spring MVC接收参数 -dat ...

  5. SpringMVC 向页面传值-Map、Model和ModelMap

    除了使用ModelAndView方式外.还可以使用Map.Model和ModelMap来向前台页面传值 使用后面3种方式,都是在方法参数中,指定一个该类型的参数.例如: Java代码 @Request ...

  6. Spring MVC中页面向后台传值的几种方式

    在学习 Spring Mvc 过程中,有必要来先了解几个关键参数:   @Controller:         在类上注解,则此类将编程一个控制器,在项目启动 Spring 将自动扫描此类,并进行对 ...

  7. 0058 Spring MVC如何向视图传值--Model--ModelMap--ModelAndView--@ModelAttribute

    MVC,模型.视图.控制器,请求来了,控制器负责找到Controller进行一通计算,计算的结果放到模型里,再找视图把结果呈现出来. 请求里一般都包含了一些参数,前面说了,Spring MVC有很多种 ...

  8. Spring MVC错误页面配置

    当前SpringMVC非常流行,在大多数情况,我们都需要自定义一些错误页面(例如:401, 402, 403, 500...),以便更友好的提示.对于spring mvc,这些当然是支持自定义的,sp ...

  9. MVC 向页面传值方式总结

    总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通View页面传一个Model对象 向强类型页面传传 ...

随机推荐

  1. UVA-1220 Party at Hali-Bula (树的最大独立集)

    题目大意:数的最大独立集问题.特殊在要求回答答案是否唯一. 题目分析:定义状态dp(i,1),dp(i,0)分别表示以i为根节点的子树选不选i最多可选的人数,f(i,1),f(i,0)分别表示以i为根 ...

  2. datafile相关(add、rename、drop)

    --case 1 add14:25:04 FPYJ(150_9)@test> alter tablespace fpyj_data02 add datafile '/oradata02/test ...

  3. dp练习(4)——过河卒

    1010 过河卒 2002年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 如图,A ...

  4. vim 缩进设置

    1.在自己的家目录(/home)下建立.vimrc文件.控制台输入vi ~/.vimrc 回车. 2.在.vimrc文件中输入如下文本: set tabstop=4 set softtabstop= ...

  5. 如何合理命名CSS文件——摘自网友

    有经验的网页制作者都明白,对于有多个栏目的大型网站而言,使用单一的CSS文件是不可能的.但CSS文件名如何命名对于新手来说是件容易出乱子的事.如何才能将CSS的命名做得井井有条? 坚持使用统一的CSS ...

  6. 快速切题 sgu117. Counting 分解质因数

    117. Counting time limit per test: 0.25 sec. memory limit per test: 4096 KB Find amount of numbers f ...

  7. Vue 组件中 移动 this.$el 的注意事项

    比如, mounted () { document.body.appendChild(this.$el); // insertAdjacentElement // insertBefore}, 这几行 ...

  8. bzoj2662

    题解: spfa最短路径 dp[i][j]表示到i,用了j掌权 然后转移 代码: #include<bits/stdc++.h> using namespace std; ; int n, ...

  9. XML解析之JAXP

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  10. 安装mysql,mysql创建数据库,创建用户及为用户添加权限

    安装mysql a.下载源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm b.安装 rpm -ivh mysq ...