日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Struts ActionForm简单理解

發布時間:2025/1/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts ActionForm简单理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要想明確struts的控制流程以及它核心API的實現原理(比方?Action/DispatchAction/ActionForm的實現原理),玩轉struts1.2的關鍵就是可以玩轉?ActionForm。

ActionForm的應用
1、——ActionForm的特性
1.創建一個form類必須繼承于四個父類中的一個,比方ActionForm、ValidatorForm。
2.一個form類中的每個屬性都將和頁面中form表單中的每個表單元素一一相應
Example:
一個表單為:
<form>
?<input type="text" name="username"></input>
?<input type="password"name="password"></input>
?<input type="text" name="email"></input>?
</form>
一個與之相應的form類
public class UserForm extends ActionForm{
??private String username;
??private String password;
??private String email;
??private String address;
??
??//以下省略getter和setter方法
}
一個引用了該form類的appAction:
<form-beans>
?<form-bean name="userForm"type="form.UserForm"></form-bean>
</form-beans>
<action-mappings>
<action path="/test" type="action.TestAction"name="userForm" attribute="uf" scope="request"></action>
</action-mappings>
3.在引用了form-bean的action中name屬性的值就是form-bean中name的值
4.這個userForm默認會被放在session中,使用scope能夠指定存儲該form對象的地方

?

2、——普通HTML表單使用Form的工作原理
ActionServlet?對struts-config進行解析時,當解析到某個action中存在一個屬性name,那么ActionServlet中的 RequestProcessor就會依據該name的值找到相應的form-bean然后創建一個相應的form類實例,放在我們定義的存儲范圍中,當表單提交到action相應的appAction之前也就是到達FC的時候,FC會做下面事情:
1.依據路徑找到相應的內存中存放著的配置對象中的action
2.依據action中的attribute屬性,從session中得到一個相應的form實例
3.該form實例調用reset方法對自己進行清空
4.用表單中的值去填充該form實例

?

?

3、——Form與實體對象之間的關系
有的時候我們為了方便會把取到的form中的值直接復制到實體對象中去然后把實體對象再存儲到數據庫中,這樣給我們的編程帶來了非常多的方便,但前提是實體對象中須要拷貝的屬性,form中要拷貝過去的屬性,與form相應的表單元素他們三者必須一一?相應.這樣我們就能夠把表單中的值得到封裝到form中然后再把form中與實體對象中屬性同樣的值復制到實體對象中。
Example:
entity:
public class User{
?private String name;
?private String password;
?private double salary;
?private String address;
?//省略getter和setter方法
}
form:
public class UserForm{
?private String name;
?private String password;
?private String salary;
?//省略getter和setter方法
}
表單:
<form>
?<input type="text" name="name"></input>
?<input type="password"name="password"></input>
?<input type="text" name="salary"></input>
</form>
1.把表單中的值賦值給UserForm
2.把UserForm中的值復制到User對象中:
//以下這條語句是在action的某個方法中做的所以form直接能夠用
BeanUtils.copyProperties(user,form);
3.將user對象存放在數據庫中

總結

以上是生活随笔為你收集整理的Struts ActionForm简单理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。