struts2.0笔记(1)
了解Struts2发展历程及其特点
??? a.支持多种视图
??? b.易于扩展和维护
??? c.支持拦截器及拦截器栈
2.了解Struts1和Struts2结构及其工作流程
3.熟悉Struts2的配置文件
??? a.内置配置文件?
??? ??? struts-default.xml用于定义拦截器、Action、Result组件
??? ??? default.properties用于定义Struts2框架的全局属性,比如请求后缀、编码格式、资源文件等
??? b.自定义
??? ??? struts.xml:用于自定义拦截器、Action、Result等组件
??? ??? struts.properties:用于覆盖default.properties的属性配置
??? c.plugin插件配置
??? ??? struts-plugin.xml:用于定义整合第三方技术的拦截器和Result等
4.Struts2.1.8工程搭建,如果是Struts2.2.1需要引入commons-io.jar和单独下载javassist.jar包
??? a. 引入以下基本Jar包
??? ??? commons-fileupload-1.2.1.jar
??? ??? commons-logging-1.0.4.jar
??? ??? ognl-2.7.3.jar
??? ??? freemarker-2.3.15.jar
??? ??? xwork-core-2.1.6.jar
??? ??? struts2-core-2.1.8.jar
??? b.在src下添加struts.xml、struts.properties
??? c.在web.xml中配置FilterDispatcher控制器
??? d.编写Action,在struts.xml中配置Action及其Result组件
??? ?
5.熟悉Action相关的配置
??? ??? a.Action中的method属性
??? ??? b.Action配置中使用通配符*
??? ??? c.请求名!方法名.action (动态方法调用)
??? ??? d.了解Action接口
??? ??? e.在Action配置中,使用<param>子元素指定初始属性信息
??? ??? f.限定请求扩展名struts.action.extension=do
??? ??? g.了解struts.xml中<constant>、<include>、<param>元素的作用
6.Struts2标签及OGNL表达式
??? a.获取模型数据,在JSP视图显示
??? b.什么OGNL、OGNL原理
??? ??? 全称:Object Graphic Navigate Language,Struts2默认使用OGNL作为表达式语言
??? ??? OGNL是一个早期开源项目,可以具有以下功能
??? ??? ??? 获取、设置对象属性
??? ??? ??? 调用对象方法
??? ??? ??? 调用静态方法和属性
??? ??? ??? 对集合进行过滤和投影
??? c.ValueStack基本结构、与OGNL关系
??? ??? ValueStack(OgnlValueStack)包含了Root(ComputeRoot,栈结构)栈顶为Action对象、Context(Map类型和结构)包含request、session、application等对象
??? ??? OGNL用于访问ValueStack中的信息
??? d.EL表达式在Struts2中的应用
??? ??? 使用EL表达式也可以获取Action对象的属性信息
??? ??? 原因:Struts2对HttpServletRequest、ServletRequest进行了封装,重写了getAttribute()方法,如果request取不到信息,将去ValueStack的root栈中寻找
??? e.常用标签
??? ??? 通用标签:property(以字符串形式显示)、date(格式化输出日期)、set(声明和设置变量、放入context区域)、push(压入root栈区域)、debug(调试)?
??? ??? 逻辑标签:if...else...、iterator
??? ??? 表单标签:textfield、password、textarea、checkbox、select