在 struts 中使用動態 form,需要 有以下幾步:
1)???????
配置動態
form
要想使用動態 form, 首先要現在 struts-config.xml 中作配置
實例代碼如下:
?
<
form-beans
>
???
<
form-bean
name
=
"vOForm"
type
=
"org.apache.struts.action.DynaActionForm"
>
?????
<
form-property
name
=
"uname"
type
=
"java.lang.String"
/>
????
?
<
form-property
name
=
"upass"
type
=
"java.lang.String"
/>
???
</
form-bean
>
?
</
form-beans
>
使用動態
form,
沒有對應的類,所以,如果需要擴展屬性,只需要再次配置文件中添加一個屬性家可以了。
但是如果是
actionform
的話,那么,如果你添加了一個屬性的話,那么你就要在屬性里面添加一個屬性,在類里面添加一個屬性。而必須做好這種對應。動態
form
就沒有這個必要了。
從這一點來說,動態 form 使用起來就更加方便。
2)???????
?
頁面
form
Form, 其實是一個 transfer object , 也就是說,是在 viewer 和 action 只見地交換數據和傳遞數據的對象。
所以從頁面的 form, 每一個屬性都要和動態 form 的屬性一一對應。
然后,由 struts 來完成其屬性值的映射。
實例代碼如下:
?
?
<form method="POST" action="login.do">
?
????? username : <input type="text" name="uname" value="zhangyi"><br>
?
????? password : <input type="password" name="upass" value="zhangyi"><br>
?
????? <input type="submit" name="submit" value="login">
?
? </form>
這個 form 里面的屬性和動態 form 里面的屬性是一一對應的。
3)???????
?Action
由上面的頁面 form 上,我們可以看到,如果此 form 提交,那么,請求提交到了 login.do
這個 action.
那么,在這個 action 里面,如何實現對動態 form 的調用 ?
實例代碼如下:
?????? DynaActionForm vOForm = (DynaActionForm) form;
?????? System.
out
.println(
"vo is : "
+ vOForm);
因為,我們傳遞的是
DynaActionForm,
所以,在調用的時候,我們就要把
form
強制轉換成
DynaActionForm
對象。
4)???????
測試結果
上面粒子的執行結果如下:
vo is : DynaActionForm[dynaClass=vOForm,upass=bbbbbbbbb,uname=aaaaaaa]
也就是說,我們已經取得了此對象。
那么下面,你如何調用業務邏輯,那么,就根據自己的需要來實現了。
?
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://www.aygfsteel.com/zhyiwww
|----------------------------------------------------------------------------------------|