@ModelAttribute原理概述以及使用注意点
2017-04-30 22:01
302 查看
@ModelAttribute注解修饰的方法:
1.从数据库中取出对象,把对象放到Map中,键为user
2.SpringMvc从Map中取出User对象,并且把请求参数赋值给User对象的对应属性
3.SpringMvc把上述的对象传入目标方法的参数
注意:在@ModelAttribute修饰的方法中,放入到Map中的键名要和目标方法入参类型的第一个字母小写的字符串一致
1.源码分析流程:
1.调用@ModelAttribute注解修饰的方法,实际上@ModelAttribute方法中Map中的数据放在了implicitModel中.
2.解析请求处理器的目标参数,实际上该目标参数来自于WebDataBinder对象的target属性
1).创建WebDataBinder对象
1.1确定objectName属性:如果传入的attrName属性值为"",则objectName为类名第一个字母小写
注意:attrName若目标方法的POJO属性使用了@ModelAttribute来修饰,则attrName的值为@ModelAttribute的value属性
1.2确定target属性
在implitModel中查找attrName对应的属性值.若不存在,则验证当前handler是否使用了@sessionAttribute进行修饰,则尝试从session中获取attrName所对应的属性值,若session中没有,则抛出了异常。
若Handler没有使用@sessionAttribute进行修饰,或者@SessionAttrbutes中没有value值指定的key和attrName相,则通过反射创建POJO对象.
2).SpringMvc把表单的请求参数赋给了WebDataBinder的target对应的属性,
3).SpringMvc会把WebDataBinder的attrName和targe给到implicitMoel
4).把WebDataBinder的target作为参数传递给目标方法的入参
1.从数据库中取出对象,把对象放到Map中,键为user
2.SpringMvc从Map中取出User对象,并且把请求参数赋值给User对象的对应属性
3.SpringMvc把上述的对象传入目标方法的参数
注意:在@ModelAttribute修饰的方法中,放入到Map中的键名要和目标方法入参类型的第一个字母小写的字符串一致
1.源码分析流程:
1.调用@ModelAttribute注解修饰的方法,实际上@ModelAttribute方法中Map中的数据放在了implicitModel中.
2.解析请求处理器的目标参数,实际上该目标参数来自于WebDataBinder对象的target属性
1).创建WebDataBinder对象
1.1确定objectName属性:如果传入的attrName属性值为"",则objectName为类名第一个字母小写
注意:attrName若目标方法的POJO属性使用了@ModelAttribute来修饰,则attrName的值为@ModelAttribute的value属性
1.2确定target属性
在implitModel中查找attrName对应的属性值.若不存在,则验证当前handler是否使用了@sessionAttribute进行修饰,则尝试从session中获取attrName所对应的属性值,若session中没有,则抛出了异常。
若Handler没有使用@sessionAttribute进行修饰,或者@SessionAttrbutes中没有value值指定的key和attrName相,则通过反射创建POJO对象.
2).SpringMvc把表单的请求参数赋给了WebDataBinder的target对应的属性,
3).SpringMvc会把WebDataBinder的attrName和targe给到implicitMoel
4).把WebDataBinder的target作为参数传递给目标方法的入参
相关文章推荐
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- [转载]PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项总结
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项总结
- PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项
- springMVC源码分析--@ModelAttribute使用及运行原理
- 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项
- PDO防注入原理分析以及使用PDO的注意事项总结