FormBean

FormBean就像是一個郵遞員 ,它可以從頁面到Action,或從Action到頁面來傳遞數據 ,代替了request.getParameter(“”)方法 ,而且還提供了集中的驗證方法validate(),這個方法可以自動裝載重新顯示數據 ,在驗證中很有現實意義 。

定義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);

相關詞條

相關搜尋

熱門詞條

聯絡我們