SpringMVC中的@ModelAttribute注解

    xiaoxiao2022-06-22  16

    SpringMVC中的@ModelAttribute注解

    使用@ModelAttribute注解解决更新一条数据中的一个数据,其他数据不会为空,保持不变。使用该注解就不用把数据库中的数据取出更改后在插入数据库中。 //模拟表单 <form action="springmvc/testModelAttributes" method="post"> id:<input type="hidden" name="id" value="1" /><br /> username: <input type="text" name="username" value="caf" /><br /> email:<input type="text" name="email" value="caf@13.com" /> age:<input type="text" name="age" value="12" /><br /> <input type="submit" value="Submit" /> </form> @ModelAttribute public void getUser(@RequestParam(value="id",required=false) Integer id,Map<String,Object> map){ if(id!=null){ //模拟从数据库中获取对象 User user=new User(1, "caf", "123456798", "caf@12356.com", "12"); System.out.println("从数据库中获取一个对象:"+user); map.put("user", user); } } //注:有@ModelAttribute标记的方法,会在每个目标方法执行之前被Springmvc调用一次,所有使用要谨慎 //目标方法 /** * 运行流程: * 1、执行@ModelAttribute注解修饰的方法:从数据库中取出对象,把对象放入到Map中。键为:user * 2、SpringMVC从Map中取出User对象,并把表单的请求参数赋给该User对象的对应属性 * 3、SpringMVC把上述对象传入目标方法的参数 */ @RequestMapping("/testModelAttributes") public String testModelAttributes(User user){ System.out.println("修改:"+user); return SUCCESS; } //注:在@ModelAttribute修饰的方法中,放入到Map时的键需要和目标方法入参类型的第一个字母小写的字符串一致

    效果图

    转载请注明原文地址: https://ju.6miu.com/read-1122617.html

    最新回复(0)