需求
<!-- 模拟修改操作
1。原始数据为1,tom,123456,tom.@qqcom,25
2.密码不能被修改
3.表单回显,模拟操作直接在表单填写对应的属性
-->
<form action="springmvc/testModelAttribute" method="post">
<input type="hidden" name="id" value="1"> username:<input
type="text" name="username" value="Tom"><br> email:<input
type="text" name="email" value="tom.@qqcom"><br> age<input
type="text" name="age" value="25"><br> <input
type="submit" value="submit">
</form>
源代码:
/**
* 有@ModelAttribute标记的方法,会在每个目标方法标记之前被springMVC调用!
* @param id
* @param map
*/
@ModelAttribute
public void getUser(@RequestParam(value="id",required=false)Integer id,Map<String,Object>map){
if (id!=null) {
User user=new User(1, "Tom", "123455", "tom.@qqcom", 25);
System.out.println("模拟获取一个对象"+user);
map.put("user", user);
}
}
/**
* 运行流程
* 1.执行@ModelAttribute注解修饰的方法,从数据库中获取对象,把对象放入到了Map中,键为user
* 2.spingMVC从Map中取出User对象,并把表单的请求参数赋给该User对象的对应属性
* 3.SpringMVC把上述对象传入目标方法的参数
* 注意:在@ModelAttribute修饰的方法中,放入到Map时的键需要和目标方法类型和第一个字母小写的字符串一致
* @param user
* @return
*/
@RequestMapping("/testModelAttribute")
public String testModelAttribute(User user){
System.out.println("修改"+user);
return SUCCESS;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。