• spring学习之@ModelAttribute注解的简介说明


    转自:

    spring学习之@ModelAttribute注解的简介说明

    下文笔者将讲述@ModelAttribute注解的功能简介说明,如下所示:

    @ModelAttribute注解

    @ModelAttribute注解放在Controller方法上时
      会在方法执行前运行 
    

    例:

     @Controller 
     public class HelloWorldController { 
          @ModelAttribute 
          public void funModel(@RequestParam String test, Model model) { 
               model.addAttribute("attributeName",test); 
            } 
      
          @RequestMapping(value = "/helloWorld") 
          public String helloWorld() { 
            return "java265.com"; 
          } 
      }
    
        在以上的示例中,当我们访问/helloWorld时
    	 funModel方法在helloWorld方法之前先被调用
        它把请求参数(/helloWorld?abc=java165)加入到一个名为attributeName的model属性中
        在它执行后 helloWorld被调用
         返回视图名helloWorld和model已由@ModelAttribute方法生成完毕
    
      model属性名称和model属性对象有model.addAttribute()实现,不过前提是要在方法中加入一个Model类型的参数。
      当URL或者post中不包含次参数时,会报错,其实不需要这个方法,完全可以把请求的方法写成,这样缺少此参数也不会出错
    

    例2: ModelAttribute返回具体类中的方法

     @RequestMapping(value = "/helloWorld") 
      public String helloWorld(String abc) { 
          return "helloWorld"; 
      }
    
    @ModelAttribute注释返回具体类的方法
    
     @ModelAttribute 
      public User addUser(@RequestParam String number) { 
         return userService.findUser(number); 
      } 
    
      model属性没有指定名称,如上例中返回User类型,则model属性的名称为user
    

    @ModelAttribute(value="") value中设置返回属性名称

    @Controller 
     public class HelloWorldController { 
           @ModelAttribute("attributeName") 
           public String addAccount(@RequestParam String test) { 
               return test; 
             } 
       
           @RequestMapping(value = "/helloWorld") 
           public String helloWorld() { 
              return "helloWorld"; 
                } 
           }
    

    @ModelAttribute和@RequestMapping同时注释一个方法

    @Controller 
    public class HelloWorldController { 
         @RequestMapping(value = "/helloWorld.do") 
         @ModelAttribute("attributeName") 
         public String helloWorld() { 
              return "hi java265.com"; 
           } 
       }
    

    @ModelAttribute注释一个方法的参数

    从model中获取

     
    @Controller 
    public class HelloWorldController { 
          @ModelAttribute("user") 
           public User addUser() { 
               return new User("test","8888"); 
            } 
       
           @RequestMapping(value = "/helloWorld") 
           public String helloWorld(@ModelAttribute("user") User user) { 
                 user.setUserName("maomao"); 
                 return "helloWorld"; 
              } 
        }
    
      @ModelAttribute("user") User user注释方法参数,参数user的值来源于addUser()方法中的model属性。
      当方法体没有标注@SessionAttributes("user"),那么scope为request,如果标注了,那么scope为session
  • 相关阅读:
    打工人准时下班踩点利器——python写一个自动关机程序并打包成exe文件
    金融知识普及月:别让“孤注一掷”照进现实,捷信反诈在行动
    Java基础(运算符)
    求生之路2服务器搭建插件安装及详细的游戏参数配置教程windows
    C语言经典例题-20
    SQL注入作业
    Linux Socket通信:socket()函数创建套接字
    OpenP2P实现内网穿透远程办公
    贝塞尔曲线文字路径
    kafka---- zookeeper集群搭建
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127763022