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的步骤。

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

      

      

      

      

  • 相关阅读:
    deepin之创建快捷idea启动方式
    python-docx读取doc,docx文档
    Jenkins节点配置-K8S云节点
    K8S创建用户RBAC授权
    在K8S中部署禅道zentao
    yum常用操作
    Git常用命令及方法大全
    rocket mq 1
    基于SpringBoot+LayUI+Freemarker+Mybatis的通用后台管理系统
    Struts+Servlet+JDBC网上手机销售系统
  • 原文地址:https://www.cnblogs.com/AshOfTime/p/10645929.html
Copyright © 2011-2022 走看看