開源框架Struts:FormBean滴那些事兒

? FormBean 的意義
? 定義FormBean
? 聲明FormBean
?從FormBean中得到請求參數
? 輸出FormBean數據到頁面
? 動態FormBean
----------------------------START--------------------------------
? FormBean 的意義
–「數據郵遞員」

? 能夠從頁面到Action,或從Action到頁面來傳遞數據
–得到請求參數
? 代替了request.getParameter(「」)方法
–提供了集中的驗證方法
? validate();
–自動裝載從新顯示數據
? 在驗證中頗有意義
? 定義FormBean
–定義一個Form Bean 繼承ActionForm
–針對JSP頁面中Form 表單的屬性建立getter()、setter() 方法
例如:
public class LoginForm extends ActionForm{
public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {
return super.validate(arg0, arg1);
}
private String username="redking";
private String password;
getter()……
setter()……
? 聲明FormBean
– 聲明 <form-beans>
<form-bean name="loginForm" type="com.amaker.struts.form.LoginForm"/>
</form-beans>
– name:formBean 的名稱
– type:formBean 的類全名
–和Action 關聯在一塊兒
<action path="/login"
type="com.amaker.struts.action.LoginAction"
name="loginForm"
input="/pages/login.jsp"
>
–在Action的execute方法中使用
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
// 強制類型轉換
LoginForm loginForm = (LoginForm)form;
// 得到屬性
String userName = loginForm.getUserName();
return null;
}
?從FormBean中得到請求參數
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
Exception {
// 強制類型轉換
LoginForm loginForm = (LoginForm)form;
// 得到屬性
String userName = loginForm.getUserName();
return null;
}
---------------------------傳統方式獲取表單數據------------------------
LoginAction.java
p_w_picpath
web.xml
p_w_picpath
struts-config.xml
p_w_picpath
login.jsp
p_w_picpath
測試:
p_w_picpath
p_w_picpath
p_w_picpath
-------------------------使用FormBean獲取表單數據----------------------
LoginForm.java
p_w_picpath
struts-config.xml
p_w_picpath
LoginAction.java
p_w_picpath
測試:
p_w_picpath
p_w_picpath
p_w_picpath
-------------------------測試Scopes範圍-----------------------------------
p_w_picpath
沒加scope參數默認爲Session範圍
下面測試一下
TestFormBeanScope.jsp
p_w_picpath
測試:
login.jsp頁面
p_w_picpath
TestFormBeanScope.jsp頁面
p_w_picpath
從而驗證了FormBean的Scope範圍在Session範圍內。
下面顯式指定Scope範圍
p_w_picpath
指定scope範圍爲request
p_w_picpath
請求完畢後就完事瞭如今沒有值了哈~
p_w_picpath
那有沒方法來實現呢?咱們來讓其跳轉哈~
先來看下之前是怎麼處理跳轉滴~
p_w_picpath
測試:
p_w_picpath
request請求還沒結束,如今username打印出來了哈~
p_w_picpath
下面看下struts是怎麼配置哈~
struts-config.xml
p_w_picpath
LoginAction.java
p_w_picpath
測試:
p_w_picpath
實現跳轉
p_w_picpath
------------------------NEXT------------------------------------
? 輸出FormBean數據到頁面
–使用Struts 標籤
? <bean:write name="loginForm" property="userName"/>
–name: form Bean 的名稱(在struts-config.xml文件中聲明的)
–property: form Bean 的屬性
–使用表達式語言(EL)
? ${loginForm.userName}
要想使用struts中的標籤咱們要導入TLD文件哈~
struts-1.3.8.rar\struts-1.3.8\src\taglib\src\main\resources\META-INF\tld
p_w_picpath
將這些標籤庫描述符導入到工程的lib目錄下
p_w_picpath
測試:
p_w_picpath
效果仍是同樣滴~
p_w_picpath
------------------------------NEXT-------------------------------------
? 動態FormBean
–意義

? 使用動態Bean的意義上減小Bean的個數
–動態FormBean類
? org.apache.struts.action.DynaActionForm
–配置 <form-beans>
<form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="username" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>
</form-beans>
–取值
DynaActionForm loginForm = (DynaActionForm)f;
String username = (String) loginForm.get("username");
String password = (String) loginForm.get("password");
 
LoginAction.java
p_w_picpath struts-config.xml
p_w_picpath
測試:
看下動態FORMBEAN的效果
p_w_picpath 
效果同樣哈~
p_w_picpath
-------------------------------END----------------------------------
相關文章
相關標籤/搜索