zoukankan      html  css  js  c++  java
  • @ModelAttribute

      在执行Controller方法前都会新建一个Map对象称为隐含模型,该Map对象是共享的,如果一个方法的入参为Map ModelAndMap ModelMap等类型,那么会把隐含模型当做入参赋给方法。所以这提供了另一种间接给Controller传递参数的方法:在A方法中向隐含模型写入数据,可以在B方法中访问隐含模型间接得到A方法传递的数据。

      比如执行以下方法可以发现打印内容为true。  

        @RequestMapping("c")
        public String c(Map map1,Map map2){
            System.out.println(map1==map2);
            return "success";
        }

      向隐含模型中写入数据的方法是标注@ModelAttribute,该注解可以标注在方法和入参上。

      标注在方法上时,@ModelAttribute方法会提前执行,并且在该方法内所有向map写入的内容都会保存在隐含模型里。当访问b控制器的时候能够获得键user对应想内容。

    @Controller
    public class testYinHan {
    
        @ModelAttribute
        public void a(ModelMap map){
            map.put("user","xu");
            System.out.println(map.get("user"));
    
        }
    
        @RequestMapping("b")
        public String b(ModelMap map){
            System.out.println(map.get("user"));
            return "success";
        }
    }

      标注在某一个方法的入参上,就等于把该方法放入了隐含模型中,省去了put的步骤。

      并且在返回到视图的时候也会把隐含模型的内容暴露给视图。

      

      

      

      

  • 相关阅读:
    Vim+Vundle+YouCompleteMe 安装
    TortoiseSVN 的分支合并操作
    JSP数据交互一
    Jquery操作DOM
    Jquery
    JQuery选择器
    第五章初始JQuery
    JavaScript对象及初识面向对象
    JavaScript第三章操作DOM
    JavaScript第二章操作BOM
  • 原文地址:https://www.cnblogs.com/AshOfTime/p/10645929.html
Copyright © 2011-2022 走看看