struts2理解
1.Struts2的整体作用:
a.方便页面数据的获取,有属性驱动和模型驱动两种;
b.中文乱码解决 以post方式提交,框架自动解决乱码问题;
c.数据验证回显,可以使用方法验证和声明式验证,根据不同场合方便灵活运用,自动回显验证的信息;
d.抽取公共操作(如参数封装和上传文件处理)交由框架拦截器完成,使程序更简洁,程序员专注于业务操作;
e.可以自定义拦截器,更适应实际开发的需求,比如访问的权限控制.
2,Struts2的运转流程:
一次请求先进过框架自带的拦截器,由框架的拦截器完成一些公共操作,再经Action处理请求,最后经过Result返回到响应的结果.
3,Struts2的核心组件说明:
ValueStack:由Map和对象栈两部分组成
Map:有request,session,application,parameters...;
对象栈:Action对象,modle...;
框架自动注值顺序:先对象栈由栈顶到栈底,找到对应的属性就注入值,不会再往下找了;如果在对象栈中没有找到的话,那就存到Map的parameters中.
在页面中使用ValueStack,要用OGNL;
在Action中使用ValueStack,要用ActionContext;
在Result中使用(即在struts配置文件中)ValueStack,要用${},如果是获取Action对象中的属性值的话,在这个Action对象必须提供针对这个属性的getter方法.
OGNL:格式%{}
只能写在Struts2自定的标签内;
没加#等于findVaule()取值的顺序:先对象栈由栈顶到栈底,找到对应的属性就取出值,不会再往下找了;如果在对象栈中没有找到的话,那就存到Map的找对应的key值;
加了#:直接在Map的找对应的key值.