java與我同在

          我與java

          2012年1月29日

          初學(xué)struts2的一些感想1

          最近這兩三天學(xué)習(xí)了struts2,感覺(jué)都快遺忘了繁瑣的servlet,主要是struts2在傳遞數(shù)據(jù)方面十分的強(qiáng)大。struts2總結(jié)來(lái)說(shuō),就是前臺(tái)的界面,后臺(tái)的類。也就是說(shuō)前臺(tái)用來(lái)顯示界面的jsp和后臺(tái)的繼承了ActionSupport的java類,并且通常是一個(gè)jsp對(duì)應(yīng)一個(gè)java類,struts2通過(guò)struts.xml來(lái)配置對(duì)應(yīng)jsp的java類。

          當(dāng)jsp訪問(wèn)java類時(shí),會(huì)由本質(zhì)上是過(guò)濾器的控制器來(lái)控制其訪問(wèn),首先會(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ù)的訪問(wèn)。然后層層調(diào)用一系列的本質(zhì)上是java類的攔截器來(lái)進(jìn)行復(fù)雜的處理,在這些攔截器中就有一個(gè)java類來(lái)進(jìn)行參數(shù)的傳遞,它會(huì)將jsp中表單項(xiàng)中名字相同的條目的值通過(guò)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ù)的過(guò)程,靠配置一個(gè)簡(jiǎn)單的struts2.xml就能實(shí)現(xiàn)參數(shù)的傳遞。

          posted @ 2012-01-29 22:44 心中江山如畫 閱讀(153) | 評(píng)論 (0)編輯 收藏

          <2012年1月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評(píng)論

          主站蜘蛛池模板: 靖宇县| 钟祥市| 正阳县| 健康| 绥滨县| 甘孜| 木里| 三明市| 黔西县| 乐安县| 那坡县| 五家渠市| 潞西市| 轮台县| 仙居县| 揭东县| 武清区| 大安市| 临西县| 苗栗县| 屯门区| 城固县| 项城市| 丹寨县| 长葛市| 西乡县| 宁德市| 娱乐| 兴业县| 万载县| 常州市| 略阳县| 桐乡市| 曲松县| 莱西市| 罗田县| 武功县| 新民市| 三明市| 资源县| 乌什县|