一路拾遺
          Collect By Finding All The Way ......
          posts - 81,comments - 41,trackbacks - 0

          Struts 從1.1都升成2了,要記錄一下,學(xué)習(xí)起來(lái)會(huì)方便一些:

          1. Struts2 與 Struts1 似乎沒(méi)什么血緣關(guān)系了,承自于 WebWork,直害 WebWork 不再推出新版本了,原先的 WebWork 使用者只需順其然,即是水道渠成;相反 Struts1 的開(kāi)發(fā)經(jīng)驗(yàn)對(duì)于 Struts2 卻沒(méi)有太大的幫助。

          2. Struts1 的核心控制器是 ActionServlet,而 Struts2 的核心控制器是 FilterDispatcher。Struts2 的業(yè)務(wù) Action 會(huì)在運(yùn)行時(shí)生成 Action 代理。

          3. Struts1 的 Action 須繼承抽象 Action 類(lèi),侵入了 Servlet API;而 Struts2 的 Action 可以實(shí)現(xiàn) ActionSupport,或者只要一個(gè)純凈的 POJO 來(lái)充當(dāng),完全與 Servlet 絕緣。也因此帶來(lái)測(cè)試性 Struts2 要比 Struts1 強(qiáng),可把 Struts TestCase 扔到一旁去了。

          4. Struts1 在運(yùn)行時(shí)一個(gè) Action 只會(huì)生成一個(gè)實(shí)例,而 Struts2 中的 Action 會(huì)應(yīng)對(duì)每個(gè)請(qǐng)求生成新的實(shí)例,在線(xiàn)程安全性方面,Struts1 要多些考慮。

          5. Struts1 依靠 ActionForm 來(lái)接受數(shù)據(jù),它也是依賴(lài)于 Servlet API ,并非普通的 JavaBean,而 Struts2 可在 Action 屬性中獲取請(qǐng)求的屬性,當(dāng)然也能封裝在一個(gè)獨(dú)立的 POJO 中。不過(guò)提醒一下,在 Struts1.3 中也可以用 POJO 來(lái)接受請(qǐng)求屬性,但使用起來(lái)有點(diǎn)煩瑣。

          6. Struts2 使用了新的 OGNL 的表達(dá)式語(yǔ)言,可以訪(fǎng)問(wèn)值棧,在對(duì)集合和索引屬性的支持上功能更強(qiáng)大。

          7. Struts1 的配置文件只需 struts-config.xml;Struts2 的配置文件有 struts.xml 和 struts.properties。struts.properties 中有兩個(gè) struts.devMode = fase 和 struts.configuration.xml.reload = true 很可愛(ài),分別設(shè)置當(dāng)前是開(kāi)發(fā)還是生產(chǎn)模式,以及 struts.xml 改變后是否自動(dòng)重新加載,免去了改配置手工重啟應(yīng)用的必須步驟。

          8. Struts2 Action 的 execute() 無(wú)參,返回的是一個(gè)字符串,不像 Struts1 Action 的 execute() 有一大串且不說(shuō),光是返回 ActionForward,就讓這個(gè) Action 與 Struts1 脫不了干系;還是 Struts2 來(lái)得聰明,只返回個(gè)中性的 String,反正名字嗎,猛然間這個(gè) Action 也成 POJO 了,復(fù)用性增強(qiáng)了,難怪專(zhuān)門(mén)有一書(shū),名為《POJO In Action》。

          9. Struts1 的視圖只支持 JSP,這也不怪它,只怨出身太早,那時(shí)就只有 JSP 一種表現(xiàn)層。相比,Struts2 更有艷福,能貼近于 FreeMarker、Velocity、XSLT、PDF 等視圖技術(shù)。

          10. Struts2 提供了功能強(qiáng)大復(fù)雜的標(biāo)簽庫(kù),統(tǒng)一化為 "s" 前綴。并順應(yīng)時(shí)代潮流地加入了 AJAX 的支持。還提供了更友好的驗(yàn)證功能。

          posted on 2010-06-01 09:39 胖胖泡泡 閱讀(356) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 昆山市| 崇仁县| 临夏县| 宾川县| 时尚| 全椒县| 金寨县| 洞口县| 丰顺县| 水富县| 曲松县| 西平县| 林甸县| 乃东县| 栖霞市| 宣武区| 寻乌县| 南投县| 无锡市| 黎平县| 沈阳市| 罗平县| 灵寿县| 松滋市| 汉中市| 安图县| 南京市| 专栏| 西城区| 长春市| 萝北县| 惠安县| 郓城县| 宁德市| 浙江省| 建平县| 板桥市| 南岸区| 卢氏县| 阿拉善右旗| 神农架林区|