• @ModelAttribute注解(SpringMVC)


    在方法定义上使用 @ModelAttribute 注解:Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了 @ModelAttribute 的方法。

    方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数绑定到对象中,再传入入参

    将方法入参对象添加到模型中(对于自定义的javaBean有用)

    @Target({ElementType.PARAMETER, ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface ModelAttribute {
        String value() default "";
    
    }

    @ModelAttribute注解之运行原理

    运行原理:

    ①     执行@ModelAttribute注解所修饰的方法,将从数据库中获取的对象存放到Map集合中,key为user(javaBean类的首字母小写形式)

    ②     SpringMVC从Map集合中获取 user对象,将表单数据封装到与参数名称对应的user对象属性上

    ③     SpringMVC将user对象作为参数,传递给目标方法。

    ④     注意:@ModelAttribute 注解修饰的方法中,放入到Map集合中的key值,应该和目标方法参数类型的类名称首字母小写一致。

        @ModelAttribute//会在方法执行前执行改方法,同时会自动将数据存放到map中,可以用return employee返回该对象,也可以自己设置
        public void getEmployee(@RequestParam(value="id",required=false)Integer id,Model model){
            Employee employee = employeeDao.get(id);
            if(employee != null)
                model.addAttribute("employee", employee);
            System.out.println("查出的员工:"+employee);
        }
    @RequestMapping(value="/emp/{id}",method=RequestMethod.PUT)
    //
    @ModelAttribute(value="employee")Employee employee
    //将封装在map中的对象取出来,添加到自定义的JavaBean中
    public String empUpdate(@ModelAttribute(value="employee")Employee employee){ System.out.println(employee); employeeDao.save(employee); return "redirect:/emps"; }
  • 相关阅读:
    [Swift]LeetCode811. 子域名访问计数 | Subdomain Visit Count
    [Objective-C语言教程]程序结构(3)
    [Objective-C语言教程]开发环境设置(2)
    [Objective-C语言教程]简介(1)
    [Swift]LeetCode810. 黑板异或游戏 | Chalkboard XOR Game
    [Swift]LeetCode809. 情感丰富的文字 | Expressive Words
    [Swift]LeetCode808. 分汤 | Soup Servings
    转:用ANT执行SQL
    转:让开发自动化: 实现自动化数据库迁移
    转 让开发自动化: 使用自动化加速部署
  • 原文地址:https://www.cnblogs.com/limingxian537423/p/7273929.html
Copyright © 2020-2023  润新知