ActionForm Bean的基本应用

(一)   什么是ActionForm

ActionForm Bean就是Struts框架中的一个JavaBean,用来获取用户提交的Html表单中的数据。ActionFormStruts框架中是一个非常重要的角色,它在把前台表单数据提交给Action处理前表单域封装成Bean对象。

自定义的ActionForm继承Struts框架的ActionForm基类org.apache.struts.action.ActionForm,其代码结构由三部分组成:

1、  属性对象对应的getter()setter()方法

2、  validate()方法(可选)

3、  reset()方法(可选)

(二)   如何使用ActionForm

如果在Struts中要使用ActionForm的功能,那么自定义的ActionForm必须继承Struts框架的ActionForm基类,并有选择的重写validate()reset()方法。

1、  重新ActionForm中的reset()方法,完成数据的初始化

reset()方法在把用户提交的表单数据封装成ActionForm前对域属性进行初始化。根据不同的用户请求的作用域不同,操作稍微有所不同。

struts-config.xml中对应的<action>元素的scope属性为request时,用户的每个新请求都会创建新的实例,且实例创建后,就首先调用reset()方法进行属性的默认初始值设置。由于在创建ActionForm实例过程中,属性已经被初始化为默认值,因此就不用再调用reset()方法进行默认值设置,即该方法可以不重写或者只写一个空的方法体。

scope属性为session时,同一个ActionForm实例会被某个用户的多个请求所共享,这时就必须重写reset()方法,手动设置属性的默认值。重写代码如下:

===========================================================

//重写的reset()方法:

 

 
  
  1. public void reset(ActionMapping mapping,HttpServletRequest request) 
  2.    this.userName=null
  3.    this.userPassword=null

===========================================================

 

2、  重写ActionForm中的validate()方法,完成数据的有效性校验。

===========================================================

//重写的validate()方法:

 

 
  
  1. public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) 
  2.     ActionErrors errors = new ActionErrors(); 
  3.     if(userName=="") 
  4.     { 
  5.       errors.add("userNameError",new ActionMessage("nameNull")); 
  6.     } 
  7.     if(userPassword=="") 
  8.     {  
  9.      errors.add("userPassword",new ActionMessage("passwordNull")); 
  10.     } 
  11.     return errors; 

===========================================================

3、  修改struts-config.xml文件,使validate()方法生效。

===========================================================

//struts-config.xml文件中的配置:

 
  
  1. <action path="/login" name="loginForm" type="com.phome.struts1.action.LoginAction" validate="true" scope="request" input="/login.jsp"> 

===========================================================