一.视图组件的构成:
HTML文档
JSP客户化标签
JavaScript和stylesheet
多媒体文件
消息资源(Resource Bundle)
ActionForm Bean
二.DTO数据传输对象
采用DTO来传输数据的好处:
减少传输数据的冗余,提高传输效率。
有助于实现各个层之间的独立。
三.Struts框架提供的DTO:ActionForm Bean
用于在视图层和控制层之间传递HTML表单数据。
四.ActionForm的生命周期:
1.创建ActionForm:可以覆盖validate()和reset()方法
Struts框架中定义了ActionForm类的抽象,在应用中必须创建它的子类,来捕获具体的HTML表单数据。对于reset()方法,
在session范围内的ActionForm极为有用,因为同一个ActionForm实例会被多个请求共享。
验证可以通过STRUTS的Validator框架,这样更方便,可以根据需要进行配置。(现在的程序全是XML配置)
2.访问ActionForm
a.使用Struts HTML标签库
(除了FORM使用STRUTS的标签,其他我觉得还是用HTML的比较方便呵呵
不过页面上的JAVA代码可能会多一些,看项目需要的了,如果用标签的话
感觉还是学习JSTL比较好,STRUTS的比较死板,通用性也差,或者可以自己写)
b.从request或session范围内取出ActionForm实例
c.在Action类的execute()方法中直接访问ActionForm
3.处理表单跨页
a.在HTML表单中定义<html:hidden property="page">属性字段,来标识当前页
b.在ActionForm中定义page属性,它和表单的隐藏字段page对应
c.在ActionForm的reset()方法中,只能把当前表单相关的属性恢复为默认值。可以调用request.getParameter("page")
方法来读取当前页面编号
d.在ActionForm的validate()方法中,只能对和当前表单相关的属性进行验证。此时page属性代表当前的页面编号
e.在配置ActionForm和Action的映射时,应该把ActionForm的范围设为session