Struts框架之ActionForm(1)

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"> 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章