码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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
  • 相关阅读:
    输入框自动保留2位小数
    易灸灸的微商模式,新零售全案运营,裂变营销与代理模式
    websocket中的STOMP 协议:sockjs-client 和 stompjs
    【C++·峰顶计划】命名空间与Cin输入Cout输出操作
    Spring Boot 性能太差?试试这几招!
    C#编程模式之建造者模式
    【CSS】div 盒子居中的常用方法
    java计算机毕业设计Internet快递柜管理系统MyBatis+系统+LW文档+源码+调试部署
    深度学习实战60-基于深度学习模型搭建人脸识别系统,用最简单的方式实现人脸识别。
    入选爱分析·银行数字化厂商全景报告,网易数帆助力金融数字化场景落地
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127763022
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号