Java+XML+MVC 架構StrutsCX簡介

來源:互聯網
上載者:User
文章目錄
  • Java+XML+MVC 架構StrutsCX簡介


Java+XML+MVC 架構StrutsCX簡介
ljdrer 原創  (參與分:258,專家分:460)   發表:2003-12-30 下午7:54   版本:1.0   閱讀:3789

Java+XML+MVC 架構StrutsCX簡介

StrutsCX是一個以Struts為基礎的XML解決方案的架構,和Struts不同,它使用XML(確切的說是XSLT)作為表現層,而不是像Struts那樣是以JSP作為表現層。
目前它的最新版本是0.9.5,這個也就意味著它還沒有完全穩定和成熟,但是目前它所具備的一些功能已經足以滿足我們大部分的需要了。

根據其官方網站的說明,它具備如下的特性:

  • 可以運行於任何Servlet引擎或者J2EE應用伺服器的輕量架構。
  • 實現簡單快速。
  • 支援國際化。
  • 使用純粹的XML和XSLT解決方案替換Struts的JSP和Message資源特性。
  • 輸出100%符合XML, XHTML, XSL-FO, WML或者其他的格式標準。
  • 錯誤驗證簡單。
  • 內部使用JDOM。
  • 包括FOP,支援PDF, SVG和ASCII輸出。
  • 包括Struts Validator。
  • 支援多種轉換。
  • 支援用戶端XSLT。
  • 包含範例應用(單個的WAR包)。

從其結構而言,它和Struts的不同之處在於Action執行完畢以後的回應,Struts在Action執行完畢之後轉向的是JSP,而StrutsCX轉向到的是它的核心類:StrutsCXServlet,該類會根據設定檔尋找得到XSL檔案,並且自動產生帶有XSL綁定的XML檔案(內部是結合StrutsCXDocumentBuilder和StrutsCXTransformer),對於一些較新的支援XML的瀏覽器(包括IE5以上,Mozilla 1.4以上)就可以顯示結果了。
以下兩個圖片可以讓我們對比一下Struts和StrutsCX的結構:

Struts

StrutsCX

至於其安裝和配置,其網站(http://it.cappuccinonet.com/strutscx/install.php?target=install)有其全面的說明。
簡單說明如下:
拷貝所需的jar包(該項目依賴很多很受歡迎的開源項目的結晶,例如avolon,Castor XML,dom4j,FOP,Jakarta Commons ,Jakarta ORO ,JDOM ,Log4j ,Struts ,Xerces)
配置web.xml聲明使用StrutsCXServlet:
<!-- StrutsCXServlet -->
<servlet>
  <servlet-name>StrutsCXServlet</servlet-name>
  <servlet-class>com.cappuccinonet.
  strutscx.xslt.StrutsCXServlet</servlet-class>
  <init-param>
    <param-name>debug</param-name>
    <param-value>false</param-value>
  </init-param>
  <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>StrutsCXServlet</servlet-name>
  <url-pattern>/StrutsCXServlet</url-pattern>
</servlet-mapping>
配置struts-config.xml使用StrutsCXPlugIn:
<plug-in className="
  com.cappuccinonet.strutscx.util.StrutsCXPlugIn">
  <set-property property="config" 
  value="/WEB-INF/strutscx-config.xml" />
</plug-in>
編寫Action,和Struts不同,我們需要在Action裡面設定要綁定的XSL檔案的路徑:
// pointer to the strutscx-definitions
String xslFile = "simple.xsl";
// set it to the HttpServletRequest
request.setAttribute(
  StrutsCXConstants.XSL_KEY, xslFile);
 
 以上只是一個非常簡單的介紹,由於筆者正在做的一個項目是一個重寫的項目,要求使用最新的技術,未來有可能支援WML,因此採取的解決方案就是使用XML代替JSP,而目前可以找到的就是這個架構了。
 根據目前我們使用的經驗,主要問題可能還是國際化支援上的問題,因為其給出的國際化支援的方案和我們現在常用的基於JAVA的properties或者Resources方案不同,需要採用它定義的XML格式,因此使用不是很方便。
 至於開發方面,這裡需要介紹的就是我們的開發經驗,其實也沒有什麼,由於剛剛開始的時候我們對其產生的XML檔案的內容不是很熟悉,因此我們採用的開發步驟如下:
 配置strutscx-config.xml檔案,編寫Action和FormBean,以偵錯模式觀看其產生的XML檔案的內容,依據XML內容編寫XSL,最後測試XSL檔案是否正確。
 需要注意的是我們要在strutscx-config.xml中將debugxml設定為on,然後我們在調用Action的時候在URL中增加debugxml=true讓其向瀏覽器輸出XML(例如http://localhost:8080/sample/hello.do?debugxml=true)

由於這個架構還非常的新,目前介紹這個架構的內容還不是很多,使用的人也可能不是很多,但是筆者相信在XML的大旗下這個架構應該是會很廣泛的應用的。

 :
http://sourceforge.net/project/showfiles.php?group_id=67148&package_id=65546&release_id=201686

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.