Struts 初學指南

來源:互聯網
上載者:User
  Struts 應該已經不算很新的東西了,
       不知道還有沒有初學者需要下面的內容

一、Struts 簡介
    Struts 是 apache 組織 jakarta 項目的一個子項目,用以改善 web 系統的結構。

    Web 系統本身的複雜性與商務程序的不確定性,是相當棘手且難於處理的。
例如,使用者可能隨時使用一個連結從系統的這部分跳到另一部分。又或者登陸一個
頁面後可能隔半天沒反映,而突然又請求另一項服務 …………
如果 Web系統沒有一個很好地設計結構,這些煩人的問題能纏著你直到你崩潰,
或者系統崩潰。 即使你硬撐著闖過幾關,後期維護工作又能把你逼瘋,或者把
其他的維護人員逼瘋! :)

    MVC(模型-視圖-控制器)模式最重要的思想就是 業務代碼 與 視圖代碼 分離。
能有效地理清系統結構,降低系統複雜度與維護難度。

Struts 就是基於J2EE 的 web 形式 MVC 模式實現!

    當然, Struts 不只是如此。 它主要由兩大部分組成,其一是上面所說的改善
web 系統結構的 MVC 架構部分。 另一部分是 Struts 的標籤庫,主要由 web
頁面製作人員使用。 

我們主要講的是第一部分,一些入門級的內容,以及新手會碰到的一些問題。

二、環境配置
    我們用 Tomcat 4.1.29 + Struts1.1 來做示範。
Tomcat 的:
http://apache.linuxforum.net/dist/jakarta/tomcat-4/v4.1.29/bin/jakarta-tomcat-4.1.29.zip
Struts 的:
http://apache.linuxforum.net/dist/jakarta/struts/binaries/jakarta-struts-1.1.zip

添加環境變數: (例如:)
JAVA_HOME     C:/j2sdk1.4.2/
TOMCAT_HOME   C:/tomcat/

同時,你也需要將 Struts/lib/struts.jar 、Tomcat/common/lib/servlet.jar
檔案添加到 CLASSPATH 變數中,代碼編譯時間會用到。
(當然,有 eclipse 等Integration Environment就方便多了)

運行 Tomcat  /bin/startup.bat 啟動 Tomcat 
Tomcat 測試: http://localhost:8080/        能看到那隻貓就算成功了

Struts 其實根本不需要多少配置
解壓 Struts 的下載壓縮包,複製 /webapps/struts-example.war 檔案
到 Tomcat 的 /webapps/ 目錄下,然後重啟 Tomcat 就可以測試
輸入:http://localhost:8080/struts-example/  看到藍色的“Struts”表徵圖就OK了
注意:如果你測試老不成功,建議換台機子試試。
      Java 環境太亂測試會失敗?!(我就這樣憋了一天)

三、執行個體示範
    如果上面的配置做完了,我們開始要做個小示範。 示範任務是做一個使用者
註冊/登陸 的“網站”。 關於 Struts 的示範,這類使用者註冊/登陸的例子算是老套了。
不知道我的例子能否激起你的興趣。 :)

首先,在 Tomcat/webapps/ 目錄下建個子目錄 取名 StrutsDemo
StrutsDemo 下的目錄結構
 

StrutsDemo 下放所有的 .jsp 分頁檔
複製 Struts 解壓目錄 lib/ 下的所有 *.tld 檔案到 WEB-INF/ 下
這些是 Struts 的標籤庫檔案,我們的例子會用到一點。

複製 Struts目錄lib/ 下的所有 *.jar 檔案到 WEB-INF/lib/ 目錄
用到的 .jar 包都要放這兒,否則會發生找不到類資源的錯誤
(要做 Struts 相關的,起碼要把 Struts 解壓目錄下 /lib 下的 .jar 考過來)

WEB-INF/classes/ 目錄下(或它的子目錄下) 還需要有個 .properties 資源檔
用來支援國際化

上面是準備一個基於 Struts 工程最基本的準備工作

本來打算貼代碼,限於篇幅提供代碼下載,已包含詳細注釋
下載:StrutsDemo.rar

四、初學者需要注意的問題
(1) 2個 .xml 的設定檔確實很煩人,特別是直接用記事本的朋友
   要有耐心, 格式一定要正確, 可以參考 Struts 內建的例子

(2) struts-config.xml 檔案裡Acturn 屬性的 validate 欄位屬性需要設定為 “true”
   才能啟動 對應 Form 的 validate 方法啟動頁面檢測

(3) strturs_config.xml 設定檔中<action> 的 scope 欄位,用來指定 Action 的活動範     圍,預設的值是"session",所以一般我們將scope設定為"request"。 如果需要設定
為"session",則留心一下對應 Form Bean 的 reset() 方法還原 Form Bean 初始值;

(3)怎樣製作 *_zh.properties 中文資源檔
   使用  JAVA_HOME/bin/ 目錄下的 native2ascii 工具
   先製作一個 ApplicationResources.properties檔案裡採用中文書寫資訊
   然後 命令列視窗鍵入 
   native2ascii -encoding gb2312 ApplicationResources.properties 
                                           ApplicationResources_zh.properties

一時想不出來了,以後再添吧  -___-!!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.