struts集合類型轉換

struts中集合類型的轉換

在struts中支持的集合類型有list、map和set,利用這三種集合類型可以保存表單提交的數據,尤其是多個相同類型的數據,如在客戶端將一個含有表格的表單提交到服務器並保存到數據庫中。

                                                                                       


圖1

如圖1.1所示,每一行都是一個學生對象,將這樣一組數據提交到服務器並保存到數據庫中時,服務器端就可以使用集合對象接受客戶端提交的數據了。

下面以上圖中的表單爲例,開始介紹這三種不同集合的類型轉換:

1、list集合轉換步驟

(1)   創建學生對象Student,包含name和age兩個屬性,並提供相應的get,set方法。

(2)   創建action的實現類Action,在該action中創建一個List集合,並提供對應的get,set方法,其泛型爲Student,但是這裏要取消泛型。

在和action相同的路徑下創建properties屬性文件,屬性文件的命名規則是:Action類名-conversion.properties

(3)   屬性文件中添加制定元素的集合類型

格式爲:Element_***=複合類型,其中***表示action中集合屬性的屬性名,複合類型是集合元素類型的完全屬性限定名,即集合泛型的屬性名,一般爲包名.類名。

(4)   創建視圖JSP頁面,在jsp中設置表單元素的name屬性值時要用

name=” list[0].age”、name=” list[0].name”這種格式,而不是一般的表單name=”name”.

(5)在action的訪問方法中進行數據庫操作,交獲取的值添加到數據庫中,這裏可以使用hibernate來實現。

(6)在action.xml文件中配置相關的訪問設置,然後訪問jsp即可。

關鍵代碼如下:

(1)   action中創建集合對象,訪問函數和數據庫操作

                                                                          

圖2


圖3

(2)   屬性文件中的設置:


圖4

(3)JSP提交頁面中name屬性的設置。


圖5

2、map集合轉化步驟:

(1)創建學生對象Student,包含name和age兩個屬性,並提供相應的get,set方法。

(2)創建action的實現類Action,在該action中創建一個map集合,並提供對應的get,set方法,其泛型爲Student,不取消泛型,在和action相同的路徑下創建properties屬性文件,屬性文件的命名規則是:Action類名-conversion.properties

(3)屬性文件中添加制定元素的集合類型

格式爲:Key_***=複合類型,其中***表示action中集合屬性的屬性名,複合類型是集合元素類型的完全屬性限定名,即集合泛型的屬性名,一般爲包名.類名。

(4)創建視圖JSP頁面,在jsp中設置表單元素的name屬性值時要用

name=”map[‘a’].name”、name=”map[‘a’].age”這種格式,而不是一般的表單name=”name”.這裏的’a’值的是這一行數據的鍵,一般用字符串類型。

(5)在action的訪問方法中進行數據庫操作,交獲取的值添加到數據庫中,這裏可以使用hibernate來實現。

(6)在action.xml文件中配置相關的訪問設置,然後訪問jsp即可。

核心代碼如下:

(1)   action中創建集合對象,獲取提交的數據並添加到數據庫中

圖6


圖7

(2)   屬性文件設置;


圖8

(3)   jsp頁面表單提交name屬性設置

 

圖9

3、set集合類型轉換步驟:

步驟與list和 map的轉換步驟是一樣的,下面是不同之處的

(1)   屬性文件的設置不同


圖10

第一行表示:set集合通過關鍵字name來索引,因爲set是一個無序可重複的集合,只能用過關鍵字來獲取、添加、查找等操作。

第二行表示:action中的集合屬性名以及集合元素的類型,即對象的全路徑

第三行表示:當沒有實例化集合屬性對象時,自動實例化。因爲set集合中要求實例化集合元素的屬性。

(2)   提交頁面表單name屬性的設置不同

圖11

makeNew[]是規定的寫法,一般name都寫成集合屬性名.makeNew[].集合元素屬性對象名,如:stuset.makeNew[2].name

主要就是以上兩點區別,代碼也基本相同,只要對list中的部分代碼稍加改動即可。

總之,以上三種集合類型的轉化原理,就是將客戶端提交的數據存儲在集合中,然後批量添加到數據庫中。

備註:這是我在CSDN上發的第一篇博客,我只是想用這樣一種方式來記錄學習過程,希望以後也能堅持分享自己的學習心得,用這種方式來督促自己培養謹慎、認真的學習態度,同時看到我博客的人,如果覺得哪裏不對,希望能提出來讓我改正,我會虛心學習的。

發佈了30 篇原創文章 · 獲贊 19 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章