Struts2框架的搭建
Struts2框架的搭建
敘:之前學習的hibernate框架,hibernate框架是作用在資料庫上的最為面向物件的框架,現在學習的是struts2框架,這個框架作用在三層架構的第一層,取代了servlet層,它比servlet更為先進,原因在於struts2中封裝了各種功能,其設計模式很優秀,是可插拔式的(在過濾器中拆除、安裝、設計自己想要的攔截器以實現功能劃分等),而且其設計思想也很先進,是面向切面思想(aop);廢話不多說現在開始~
1、建立專案
專案名稱為:struts2
2、獲取、匯入jar包
建立好後準備匯入架包;使用的這個jar包中存放了很多開發中經常用到的jar檔案~
這個jar包比較老了,大家可以使用更新的版本的~
既然說到匯入jar包了,那麼可定要有獲取jar包的路徑~
2.1 獲取jar包
一般是在網上通過官方網站下載獲得的,提供給大家的網址:https://struts.apache.org/download.cgi#struts2518,這個是直接進入選擇版本並下載的頁面,頁面如下圖所示:
進入上圖介面後選擇完整版的struts2框架jar包壓縮包,選擇如下圖所示的檔案:
2.2 匯入jar包
下載下來後將壓縮包解壓並找到apps資料夾,在這個資料夾中存在一下幾個壓縮包,如下圖所示:
然後將第一個struts2-blank.war檔案解壓,解壓開啟後找到lib檔案,會看到此資料夾下的所有jar檔案如下圖所示:
路徑:
然後將所有jar檔案都複製到新建立專案struts2_1的lib資料夾下即可;(不要忘記build path一下或者執行一下,執行一下專案後eclipse會自動build path,建議採用後一種方法~)
解釋:
struts2-blank.war這個資料夾是封裝好的例子,其他的幾個也是封裝好的例子,不過blank這個是最為簡單和基礎的,框架的搭建適用於學習如何搭建的以及編寫一個小的demo即可,所以使用struts2-blank.war這個裡面的jar檔案足以;
3、匯入約束
約束顧名思義,就是約束我們編寫的程式碼是否合乎規範,幫助我們快速找到程式碼編寫問題的~
3.1 無網情況下匯入約束
首先,找到匯入的jar包經過build path後產生的 ,其位置在專案的Java Resources → Libraries 檔案下,找到struts2-core-2.3.24.jar檔案,開啟找到如下圖所示的約束檔案:
我們下載使用的struts2的開發框架檔案是2.3版本的,因此選擇匯入struts-2.3.dtd版本的約束檔案即可,如果沒此檔案的話可以自己做一個,會在下邊3.3中將如何自己製作一個約束檔案;
現在預設有struts-2.3.dtd的約束檔案,那麼,我們開啟在專案中找到的struts-2.3.dtd這個檔案,然後複製如下圖紅框中所示的程式碼段:
然後依次開啟eclipse中的Window → Preferences,preferences在eclipse中用於引數配置的,其面板如下所示:
在左上角的輸入框中輸入“catalog”找到XML Catalog選項並點選會看到如下圖所示:
點選大紅框中的Add按鈕,在第一個框中匯入自己的struts-2.3.dtd檔案的路徑,第二個框Key Type中將Public ID選項改成 URI,第三個框中輸入剛才複製的路徑即可,完成圖如下圖所示:
然後點選OK按鈕即可;
3.2 製作一個約束檔案
如果沒有相應的約束檔案那麼我們可以自己自做一個,方法很簡單,同樣的找到下圖中的檔案:
選中其中自己需要的(預設為struts-2.3.dtd)並開啟,將其中的內容全部複製,然後建立一個新的文字文件,將複製的程式碼全部粘進去並儲存。最後修改文件文字的名稱要和複製的原始檔的名字一樣,字尾名改為“.dtd”即可;
之所以複製內容到文字文件中然後再改名字而不直接複製原始檔是因為原始檔dtd格式的不允許在eclipse中直接複製;
3.3 有網情況下匯入約束
在有網的情況下可以直接進行配置,其配置方法如下:
開啟專案中libraries資料夾,找到其中的struts-2.3.dtd檔案,複製其中兩行的程式碼,如圖下所示,第一行程式碼編號為①,第二行程式碼編號為②;
然後開啟window中的preferences進行引數配置,找到約束檔案配置(XML Catalog)項,然後將編號為①的程式碼貼上到Key框中,編號為②的程式碼放到location框中,Key type的值不用改變,仍然使用Public ID,最終配置成如下圖所示:
3.4 測試約束
在專案的src路徑下建立一個struts.xml檔案(這個在struts2框架中是必須要有的,是struts2框架的核心配置檔案),然後開啟struts-2.3.dtd檔案,複製如下圖所示的程式碼:
將此段程式碼貼上到剛才建立的struts.xml檔案頭部
然後將在下面編寫程式碼,輸入“<str”會有補全提示,補全後在標籤之間打上“<”會提示一堆補全提示既是約束匯入成功;
注:
1) 在無網路的情況下使用了有網配置的話是沒有任何用的,有網配置只是在有網的情況下才能使用,因此,建議使用無網配置,不算複雜但是很省心;
2) 配置完後如果沒有效果可以嘗試關閉struts.xml檔案再次開啟嘗試,使其重新載入;
4、Struts2的第一個測試Demo
4.1 建立Action方法
建立一個action類,名為TestAction:
然後在類中建立相應的方法,如下所示;
package com.java.Action;
public class TestAction {
public String StrutsTest(){
System.out.println("You are right!");
return "success";
}
}
4.2 在struts.xml中配置
其中主要的程式碼如下所示,其中在標籤中的標籤有三個,人別是、、這三個;
<struts>
<package name="test" namespace="/test" extends="struts-default">
<action name="TestAction" class="com.java.Action.TestAction" method="StrutsTest">
<result name="success">/Test.jsp</result>
</action>
</package>
</struts>
標籤解釋:
標籤名 | 屬性名 | 屬性值 | 備註 |
---|---|---|---|
Package | name | test(任意) | 這個是package的名子,用以區分多個package,可以隨意寫只要不重複 |
namespace | /test | 這個是頁面跳轉使用的,在書寫時必須要帶上“/“才行,不過一般只使用“/”也行 | |
extends | struts-default | 繼承struts的預設包,這個是定死的 | |
Action | name | TestAction | 填寫action類名,這個是設定呼叫名為“TestAction”時就找這個action標籤的 |
class | com.java.Action.TestAction | 這個action類“TestAction”他的全路徑,告訴電腦這個action類的路徑 | |
name | success | 這個屬性值是不定的,據填寫什麼要看action類結束後返回的字串 |
4.3 過濾器的配置
Struts2是基於過濾器的框架,因此,做後的步驟就是配置過濾器,配置步驟很簡單,但是很重要,只有配置了過濾器的struts2才是真正的struts2框架,在web.xml檔案中配置的程式碼如下:
<!-- struts2核心過濾器配置 -->
<filter>
<filter-name>test</filter-name>
<!-- struts2核心過濾器需要配置的完整類名 -->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>test</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
其中難點在於filter的類名比較長比較難記,不過可以不用記,找到filter的類複製其類名即可,尋找方法如此即可:使用CTRL+SHIFT+T組合鍵彈出如下圖所示的檢索框,在框內輸入“strutspre…”只用輸入這幾個字母就會出現下圖中的大紅框框住的一個選項,點進去即可;
點選進入大紅框框住的類,進入如下圖所示的介面,複製下圖中紅框的類名貼上到web.xml過濾器配置的過濾器類名中即可;
配置完成後如上面的程式碼即可;
4.4 執行
萬事俱備,只欠東風,現在 所有的準備工作都已經準備好了,就差跑一遍程式了,首先右擊專案Run as → Run on server ,會報如下錯誤:
然後在瀏覽器網址後邊輸入之前在struts.xml中配置的namespace的值,然後斜槓再加上action標籤中的name的值即可;
新增完後執行結果如下圖所示:
如此便是完成了struts2框架的初步搭建學習;