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

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

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

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

          3. Struts1 的 Action 須繼承抽象 Action 類,侵入了 Servlet API;而 Struts2 的 Action 可以實(shí)現(xiàn) ActionSupport,或者只要一個(gè)純凈的 POJO 來充當(dāng),完全與 Servlet 絕緣。也因此帶來測試性 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í)例,在線程安全性方面,Struts1 要多些考慮。

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

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

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

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

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

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

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 壤塘县| 淅川县| 琼结县| 华池县| 策勒县| 巴南区| 扶风县| 汪清县| 东源县| 德州市| 邳州市| 象州县| 安庆市| 定结县| 视频| 乡宁县| 上杭县| 沂水县| 弋阳县| 罗江县| 乐山市| 黄梅县| 上蔡县| 荆州市| 永嘉县| 峨山| 伊宁市| 精河县| 凤凰县| 辽阳市| 金昌市| 鹿邑县| 通辽市| 通渭县| 海安县| 若羌县| 辽宁省| 施甸县| 精河县| 天镇县| 彭泽县|