初學(xué)struts2的一些感想1
最近這兩三天學(xué)習(xí)了struts2,感覺都快遺忘了繁瑣的servlet,主要是struts2在傳遞數(shù)據(jù)方面十分的強(qiáng)大。struts2總結(jié)來說,就是前臺(tái)的界面,后臺(tái)的類。也就是說前臺(tái)用來顯示界面的jsp和后臺(tái)的繼承了ActionSupport的java類,并且通常是一個(gè)jsp對(duì)應(yīng)一個(gè)java類,struts2通過struts.xml來配置對(duì)應(yīng)jsp的java類。
當(dāng)jsp訪問java類時(shí),會(huì)由本質(zhì)上是過濾器的控制器來控制其訪問,首先會(huì)創(chuàng)建相應(yīng)的Action對(duì)象(繼承了ActionSupport的java類的一個(gè)實(shí)例)和ActionContext對(duì)象,ActionContext對(duì)象中存有Action對(duì)象的所有屬性以及其他的包裝了request、session、application的map,并且會(huì)將ActionContext對(duì)象綁定到當(dāng)前的線程上面,便于對(duì)數(shù)據(jù)的訪問。然后層層調(diào)用一系列的本質(zhì)上是java類的攔截器來進(jìn)行復(fù)雜的處理,在這些攔截器中就有一個(gè)java類來進(jìn)行參數(shù)的傳遞,它會(huì)將jsp中表單項(xiàng)中名字相同的條目的值通過ActionContext自動(dòng)賦給java類中名字相同的變量,從而完成了數(shù)據(jù)從jsp到j(luò)ava類的映射,之后調(diào)用執(zhí)行java類的特定方法并返回一個(gè)表示狀態(tài)的字符串,然后再一層層返回直到控制器,控制器根據(jù)返回字符串在struts.xml中找到相應(yīng)的jsp等進(jìn)行跳轉(zhuǎn)處理,并可以讀取ActionContext中的數(shù)據(jù)以顯示相應(yīng)的結(jié)果。
這樣在struts2中就不需要進(jìn)行復(fù)雜的讀取參數(shù)的過程,靠配置一個(gè)簡(jiǎn)單的struts2.xml就能實(shí)現(xiàn)參數(shù)的傳遞。
posted on 2012-01-29 22:44 心中江山如畫 閱讀(154) 評(píng)論(0) 編輯 收藏