定義FormBean
定義一個FormBean繼承ActionForm
針對JSP頁面中Form表單的屬性創建getter()、setter()方法
例如:
publicclassLoginFormextendsActionForm{
publicActionErrorsvalidate(ActionMappingarg0,HttpServletRequestarg1){
returnsuper.validate(arg0,arg1);
}
privateStringusername="redking";
privateStringpassword;
getter()……
setter()……
聲明FormBean
聲明<form-beans>
<form-beanname="loginForm"type="com.amaker.struts.form.LoginForm"/>
</form-beans>
–name:formBean的名稱
–type:formBean的類全名
–和Action關聯在一起
<actionpath="/login"
type="com.amaker.struts.action.LoginAction"
name="loginForm"
input="/pages/login.jsp"
>
在Action的execute方法中使用
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)throwsException{
//強制類型轉換
LoginFormloginForm=(LoginForm)form;
//獲得屬性
StringuserName=loginForm.getUserName();
returnnull;
}
從FormBean中獲得請求參數
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)throws
Exception{
//強制類型轉換
LoginFormloginForm=(LoginForm)form;
//獲得屬性
StringuserName=loginForm.getUserName();
returnnull;
}
套用實例
formbean在struts-config.xml中配置如下:
<form-beanname=userForm
type=org.apache.struts.webapp.exercise.UserForm/>
</form-bean>
由於頁面控制項較少可以使用動態formbean,動態formbean不必寫UserForm.java
只需要在struts-config.xml中配置如下:
<form-beanname=userFormtype=org.apache.struts.action.DynaActionForm>
<form-propertyname=nametype=java.lang.String/>
<form-propertyname=sex2type=java.lang.String/>
<form-propertyname=sextype=java.util.Collection/>
</form-bean>
由此可以看出動態formbean對控制項較少的頁面更簡單,它不必寫setget方法但必須有
type=org.apache.struts.action.DynaActionForm
動態formbean的使用:
DynaActionFormdyForm=(DynaActionForm)form;
Stringname=dyForm.get(“name”);
dyForm.set(“name”,xiel);