SpringMVC 9. ModelAttribute注解

@ModelAttribute

1 ModelAttribute的应用场景

为了实现更改数据库中的一部分数据,并且敏感的数据并不会在页面传回服务器.

  • 在未使用ModelAttribute注解前
    1
  • 使用ModelAttribute注解能实现
    2

2 ModelAttribute的示例

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

  • 可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数绑定到对象中,再传入入参
  • 将方法入参对象添加到模型中

controller类方法:

/**
     * 1. 有 @ModelAttribute 标记的方法, 会在每个目标方法执行之前被 SpringMVC 调用! 
     * 2. @ModelAttribute 注解也可以来修饰目标方法 POJO 类型的入参, 其 value 属性值有如下的作用:
     * 1). SpringMVC 会使用 value 属性值在 implicitModel 中查找对应的对象, 若存在则会直接传入到目标方法的入参中.
     * 2). SpringMVC 会一 value 为 key, POJO 类型的对象为 value, 存入到 request 中. 
     */
    @ModelAttribute
    public void getUser(@RequestParam("id") Integer id ,Map<String,Object> map){
        System.out.println("ModelAttribute Method");

        if (id != null){
            User user =  new User(1,"hgx","123456",12,"1223@qq.com") ;
            System.out.println("从数据库查到User:" + user);
            map.put("user",user) ;
        }
    }


    @RequestMapping("/testModelAttribute")
    public String testModelAttribute(User user){

        System.out.println("修改:"+user);

        return SUCCESS ;
    }

jsp页面:

 <form action="/springmvc/testModelAttribute" method="post">
        <input type="hidden" value="1" name="id">
        <br>
        username:<input type="text" name="username">
        <br>
        age:<input type="text" name="age">
        <br>
        email:<input type="text" name="email">
        <br>

        <input type="submit" value="submit">

    </form>

上一篇:SpringMVC 8. 处理数据模型 ModelAndView、Map 及 Model、@SessionAttributes
下一篇:SpringMVC 10. ModelAttribute 源码分析,运行流程,确认目标方法 POJO 类型入参的过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值