zoukankan      html  css  js  c++  java
  • @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"; }
  • 相关阅读:
    教你取得计算机的所有权(可删除和打开或复制系统文件)
    为什么人口红利不能解决中国危机?
    开发者需要知道的11条HTML5小常识
    高性能CSS(四)
    8个应该去逛逛JQuery的学习网站
    用PHP调用证件识别接口识别本地图片
    Android开发有用的三方网站
    手机话费充值和手机流量充值 API
    Android开发之短信验证码示例
    微信小程序(应用号)开发新闻客户端的实战课程
  • 原文地址:https://www.cnblogs.com/limingxian537423/p/7273929.html
Copyright © 2011-2022 走看看