Struts笔记(二)ActionForm传递数据
2. ActionForm传递数据
创建一个ActionForm 并不困难,但是你的类必须符合一些要求:
ActionForm 必须扩展自org.apache.struts.action.ActionForm。基类ActionForm 是不能实例化的。
ActionForm 必须为每个应该从请求中收集的HTML输入控件定义一个公共属性。
如果你要求ActionForm 在传递属性到Action之前校验它们,你就必须实现validate方法;
如果想在组装前初始化属性,必须实现 reset , 它在ActionForm 组装前被调用;
下面是一个简单的ActionForm 类:
<form-beanname="myForm"type="org.apache.struts.action.DynaActionForm"><form-propertyname="name"type="java.lang.String"/><form-propertyname="address"type="java.lang.String"/></form-bean>
ActionForm 作为字段收集器ActionForm 作为数据缓冲,以便在提交之前进行校验ActionForm 作为数据校验器,。ActionForm的validate 方法是一个扩展点,你可以在此插入对业务方法(它们知道如何校验数据)的调用。当校验失败, ActionForm 可以将整个内容
都回传给web 页面,这样用户就可以重新尝试。ActionForm 作为类型转换器,在ActionForm中包含一些helper方法,来进行类型转换。helper 方法可以有很多种实现方式。ActionForm 作为传输对象(TO),ActionForm 可以被其它bean或者过程作为数据载体。就是说ActionForm 是一个传输对象(Transfer Object)。HTTP 将每个属性表达为名-值对。ActionForm 作为防火墙,它使你在数据被允许传递到应用的其它部分之前必须检查数据。
Struts 标签扩展有助于根据ActionForm组装HTML 控件。ActionServlet根据HTTP 请求组装ActionForm。