Eclipse搭建Struts框架,及一個簡單的Struts例子
Struts是當今Java比較流行的三大框架之一,三大框架是Struts,spring,hibernate。Struts框架也包括Struts1和Struts2,由於兩個版本相差比較大,Struts1已經被淘汰,現在企業基本上全部都用Struts2,所以我當然也是用Struts2。
好,下面我詳細的說明搭建過程
首先啟動Eclipse J2EE版本(官方最近發布的版本),創建一個web項目Struts2
引入我們下載的Struts2的目錄下的Jar包,
具體目錄如下
將這些Jar包導入到項目的lib目錄下
然後打開上層目錄的web.xml配置文件
將filter和filter-mapping兩個標籤對的內容copy到Struts2項目的web.xml
然後,想下圖(據圖根路徑看你Struts的位置)指定路徑的struts.xml考到項目的src目錄下
如圖
打開strut.xml,將<struts>標籤對中的全部內容刪除或者注釋,建議注釋
然後從注釋的部分copy一下內容到struts中
內容
<constant name="struts.devMode" value="false" /> <package name="default" namespace="/" extends="struts-default"> <default-action-ref name="index" /> <action name="index"> <result type="redirectAction"> <param name="actionName">HelloWorld</param> <param name="namespace">/example</param> </result> </action> </package>
然後將第一句<constant name="struts.devMode" value="false" /> 改為<constant name="struts.devMode" value="true" />
這句話主要是說,當我們項目的action的改變時,可以立刻響應改變,不需要重啟伺服器
結果為
到此Strut2的配置已經完成,可以寫例子了
我這裡就寫一個最簡單的例子在網頁上 列印hello Struts2!
首先在項目的webContent目錄下創建一個JSP文件index.jsp
並更改代碼如下
然後將項目中的struts.xml的代碼更改為
這段代碼我等下再給大家介紹
ok,啟動伺服器,打開瀏覽器,輸入網址http://localhost/Struts2/hello
結果為
實驗成功!!!
說明:
大家看到了,現在我們訪問的地址是http://localhost/Struts2/hello,並不是直接訪問http://localhost/Struts2/index.jsp
我把流程畫一下
當客戶端訪問時,伺服器通過過濾器filter,然後根據action得到客戶端訪問的jsp頁面,然後將jsp頁面反饋給客戶端。
無形當中把jsp和客戶端分開,這樣做有什麼好處呢?直接訪問jsp不更加簡單嗎,幹麼弄得這麼複雜?
這根設計模式是一樣的,複雜的東西背後帶來的好處就是可拓展
大家不妨想想,如果是直接訪問jsp,如果我們需要更改jsp中的內容(這是經常需要更改的部分),我個人認為除了暫時停止服務以外,然後更改代碼,否則沒有什麼辦法!但是這是很要命的!
但是我們如果引入的action這個中間層,因為客戶端並沒有和jsp有什麼直接聯繫,所以只要action改變,即可立刻更換jsp,或者action不變,直接更換jsp文件,即可,不需要付出任何代價。
這就是struts的核心思想,與MVC思想非常類似。
好,我的發表到此結束。相信讀者能夠很輕易的體會這個思想。
推薦閱讀:
※JSP中標籤的部署與調用
※Struts1.x系列教程(3):屬性(資源)文件亂碼問題的解決之道
※Struts標籤庫
※Struts2 初探
※基於 Struts 2 構建 WebSphere Portal 上的 Portlet 應用