Struts2之型別轉換器的使用

2022-08-17 18:09:17 字數 1915 閱讀 2409

一、學習案例:通過在輸入頁面(input.jsp

)用同乙個輸入框同一時候輸入username和password,通過型別轉換器在輸出頁面

(output.jsp)

分別輸出username和password。

二、a)型別轉換是發生在頁面資料提交之後,action

接收之前的。

b)對於8

個原生資料型別以及

date

。string

。struts2

都能自己主動轉換。所以我們僅僅有在某些特定需求的情況下才會用到。

c)型別轉換器,一聽這個名字。我們首先會想到得有這麼個類(沒想到的等明天再想吧。繼續看)。所以我們先建立乙個名為userconverter

的類。當它繼承strutstypeconverter

之後,這就是個型別轉換器。也不繼承

defaulttypeconverter

,只是不推薦。

strutstypeconverter

的父類就是

defaulttypeconverter

,所以推薦使用

strutstypeconverter

。d)strutstypeconverter把邏輯語句分為了

convertfromstring

和converttostring

。重寫就可以。

前者是前台到後台。後者是從後台向前臺轉換。

**:

@override

public object convertfromstring(map arg0, string arg1, class arg2)

@override

public string converttostring(map arg0, object arg1)

e)型別轉換器有了。

struts2

怎麼才幹知道我們重寫了呢,換句話就是

struts2

怎麼知道有

userconverter

的存在呢?所以我們要在

useraction

中配置連線檔案,即:

useraction-conversion.properties

,useraction

同action

名稱同樣,後面是官方規定,必須這麼寫。內容為

action

中用到的屬性名和轉換器。

**:user=

com.almostman.converter.userconverter

。這樣當前臺資料傳輸到action

時,會先檢測屬性名

user

是否使用型別轉換器。假設使用則啟動型別轉換器。

這樣型別轉換器才幹正常執行。

三、經驗之談:

a) 不要鑽牛角尖,比方說某些同學對一些不是必需的。相關性不大的問題死扣究竟。有時候實在搞不清的問題,就放放。在以後假設越到同類問題,非常easy就能解決。原因就是剛開始學習的人一些專業知識積累的不夠,當知識積累到一定程度,像這些專業性的問題,一看就行明確。

b) 型別轉換器事實上在實際專案開發中用到的不是特別大。反正在我開發自己站點的一年時間裡是沒怎麼用到,僅僅是有些地方的日期格式控制能用到。

c) 學軟體開發這一行,不要思維定式。更不要用感情的思維方式去解決這個問題,我們開發面對的是 機器,用的是機器語言。我們應該學會用機器的思維方式去解決這個問題。比方型別轉換。我們在設計表單頁面時,全然可通過頁面設計上的優勢杜絕使用型別轉換。好比,日期輸入,我們全然能夠用外掛程式取代,不讓人工輸入。

四、案例專案:

五、每日一樂:

一天我和同事一起值班,聊了一會天。

結果他想起一點事,要出去。

我看同事要走,說:「

哎哎哎,別走啊,再吹會牛b唄。

」他什麼也沒說,走到我的面前。

對著我的耳朵,輕輕的吹了一口氣,頭也不回的走了。

struts2自定型別轉換器

型別轉換 a.自定型別轉換器 1 建立實現類,繼承strutstypeconverter或defaulttypeconverter 2 重寫父類方法,實現字串和物件相互轉換 3 在src根目錄下新增配置xwork conversion.properties配置,內容格式 物件屬性型別 轉換器型別,均...

struts2 內建型別轉換器

如下型別可以相互轉化 boolean和boolean 完成字串和布林值之間的轉換 char和character 完成字串和字元之間的轉換 int和integer 完成字串和整形之間的轉換 long和long 完成字串和長整形之間的轉換 flota和float 完成字串和單精度浮點值之間的轉換 dou...

struts2列舉轉換器

1.列舉類 view plain public enum areatype implements ienumconverter override public string getname override public integer getordinal override public stri...