模拟修改的操作
<!--
1.原始数据为:1.a ,123456,a@qq.com,12
2.密码不能被修改
3.表单回显,模拟操作直接在表单上写对应的值
-->
<form action="/" method="post">
<input type="hidden" name="id" value="1"/>
<input type="text" name="name" value="a"/>
<input type="password" name="password" value="123456"/>
<input type="email" name="email" value="a@qq.com"/>
<input type="submit" value="提交">
</form>
1:有@ModelAttritude标记的方法
,会在每个目标方法执行前被springMVC调用
2:@ModelAttitube注解可以来修饰目标方法POJO类型的入参
1):SpringMVC会使用value属性值在implicitModel中查找对应的对象,若存在则直接传入到目标方法的入参中。
2):SpringMVC会value为key,POJO类型的对象为value,存入到request中。
若不对应的话
@ModelAttribute
public void get(@requestParam(value="id" required=false) Integer id,
Map<String ,Object map>){
if(id!=null){
//模拟从数据库中获取对象
User user = new User(1,"a",123456,"a@qq.com",18);
system.out.println("从数据库中获取对象user:"+user);
map.put("user" ,user);
}
}
//这个里面的@ModelAttitude对应value必须的与上面注解@modelAttritude里面的需要传入的参数的名字必须的一样。
public String testModelAtttibute(@ModelAttritude("user")User user){
system.out.println("修改"+user);
}
运行流程
public String testModelAtttibute(User user){
system.out.println("修改"+user);
}
注意:有@ModelAttitube这个注解的话,会在每个方法执行的时候先执行这个注解下的方法。