Author:兆庆 Write Time:2009-10-22
首先,FormBean常规都是继承自ActionForm的,控制器对FormBean的控制就以ActionForm为例。
一、reset方法:
1、对于每个request,控制器都会先调用ActionForm的reset()方法,然后将表单数据组装到ActionForm中。如ActionForm在request范围内,那么对于每个新的request请求都会创建新的ActionForm实例。新实例创建后,如果它的属性已经被初始化为默认值(例如其中一个属性为:private String name = null;相应getter和setter方法略),那么接着再在reset()方法中把属性设为默认值不是很有必要,这时可以让reset()方法为空。
例如:在每次提交表单的时候,给FormBean里面的属性赋值之前调用reset方法,避免在前一次操作时在FormBean中遗留一些脏数据。
2、对于session范围内的ActionForm,同一ActionForm实例会被多个请求共享,reset()方法在这种情况下极为有用。
3、简而言之:当scope(作用域)找对应的FormBean,并且能够找到时,就会对该FormBean进行初始化,并调用reset方法。
二、validate方法:
进行表单验证的方法,如果页面中利用JavaScript或者在ActionBean中有代码的逻辑验证,该方法可空。
需要使用时,实现方法分两步骤:
1、在struts-config.xml中设置action的validate属性为"true"(默认为"true"),
<action path="/updateUser"
type="com.cn.lively.action.UpdateUserAction"
name="userForm"
scope="request"
input="/jsp/updateUser.jsp"
cancellable="true"
validate="true" >
<forward name="success" path="/jsp/validator/updateUserResults.jsp"/>
</action>
2、在相应的FormBean中重写其中的validate方法,在validate方法中实现自己的数据验证逻辑。
当然实现表单验证也可通过validation框架进行验证,这里就不做说明了。