ActionForm捕獲表單數據
使用Web應用的人通常會花費大量的時間通過HTMLform提交數據,HTML
form給Web開發人員提出了兩個挑戰:一是在數據被提交時獲取數據,以及用戶要修改的數據預裝入一個表單,以供用戶修改。
怎麼才能把javabean中的數據和HTML form上的數據連接起來呢?Struts通過標籤來組裝控件,每個HTML標籤對應一個標準的struts標記元素(taglib), 每個標籤都有一個屬性項對應提供bean的屬性名稱,JavaBean屬性的返回值對應HTML控件的value屬性。
如:<input name="address"/>由Struts標籤來代替:
<html:input property="address"/>
ActionForm的作用:
通過Struts的標記庫在JavaBean和Html表單元素間傳值
ActionForm 的要求
創建一個ActionForm並不困難,但是你的類必須符合一些要求:
¨ ActionForm必須擴展自org.apache.struts.ActionForm。基類ActionForm是不能實例化的。
¨ ActionForm 必須爲每個應該從請求中收集的HTML控件定義一個公共屬性。
¨ 如果你要求ActionForm 在傳遞屬性到Action之前校驗它們,你就必須實現validate方法;
¨ 如果想在組裝前初始化屬性,必須實現reset,它在ActionForm組裝前被調用;
下面是一個簡單的ActionForm類:
import org.apache.struts.action.*;
public class MyForm extends ActionForm {
protected String name;
protected String address;
public String getName() {
return this.name;
};
public String getAddress() {
return this.address;
};
public void setName(String name) {
this.name = name;
};
public void setAddress(String address) {
this.address = address;
};
};