zoukankan      html  css  js  c++  java
  • Spring MVC 向页面传值-Map、Model、ModelMap、ModelAndView

    • 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;
    }
    
  • 相关阅读:
    LINUX下Mplayer的设置和作用
    C#的New关键字的几种用法
    Windows Mobile中实现统计图形的绘制(C#版,柱状图)
    maven install时跳过测试
    深入理解Java虚拟机二 阅读笔记
    VMware上安装虚拟机教程
    巴菲特的人生观
    全球15个顶级技术类博客
    针对Android里没有Arrays.CopyOf的解决办法
    Android基础project各个文件夹作用
  • 原文地址:https://www.cnblogs.com/cag2050/p/7243837.html
Copyright © 2011-2022 走看看