Spring MVC 之 @ModleAttribute

问题:修改数据库中某对象,但是需要保留该对象的某个属性不变。
这里写图片描述

解决方案:
这里写图片描述

/*
 *由@ModelAttribute 标记的方法,会在每个目标方法执行前被Spring MVC调用!
   * @ModelAttribute 注解也可以来修饰目标方法POJO类型的入参,其value属性值有如下的作用:
 *1).SpringMVC 会使用value属性值在implicitModel 中查找对应的对象,若存在则会直接传入到目标方法的入参中。
 *2).SpringMVC 会以 value 为key ,POJO 类型的对象为value,存入到request中。
 */
@ModelAttribute
public void getUser(@RequestParam(value="id",required = false)Integer id,Map<String, Object> map){
    System.out.println("@modelAttribute执行");
    if(id != null){
        User user =  new User(1, "tom", "123456", "lizhen@edu.cn", 12);
        System.out.println("模拟从数据库中获取对象"+user);
        map.put("abc", user);
    }
}
/*
 * 运行流程:
 * 1.执行@ModelAttribute注解修饰的方法:从数据库中取出对象,把对象放入到了Map中,键为:user
 * 2.SpringMVC 从Map中取出user对象,并把表单的请求参数赋给该User对象的对象属性
 * 3.SpringMVC 把上述对象传入目标方法参数。
 * 
 * 注意:在@ModelAttribue 修饰的方法中,放入到Map时的键需要和目标方法入参类型的第一个字母小写的字符串一致!
 */
@RequestMapping("/testModelAttribute")
public String testModelAttribute(@ModelAttribute("abc")User userl){
    System.out.println("修改:"+userl);
    return SUCCESS;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值