前言
struts2架構apache基金組織下的一個開源架構,基于mvc模式設計的web應用開發架構。struts 2是一個用于開發java ee網絡應用程式的開源web應用架構,它利用并擴充了java servlet api,鼓勵開發者采用mvc架構。目前struts2的最高版本是2.5(測試版)。
快速入門
1、下載下傳和安裝
可以從官網直接下載下傳最新的struts開發包,官網有多個版本,使用的時候下載下傳full版本即可。下載下傳之後,隻需要進行解壓就可以使用了
2、hello world程式
以下是建立struts2的helloworld程式的詳細步驟:
在myeclipse中建立web project
從下載下傳的struts解壓檔案中導入jar包
說明:這裡的jar包為了簡潔,建議直接從app目錄下的struts2_blank.war中的lib目錄下的jar包拷貝過來。這樣做的原因是比較省事,自己找jar包太麻煩。
其jar如下:

編寫web.xml,添加如下配置:
編寫action類檔案。在src目錄下建立helloworld.java檔案,如下:
配置structs.xml
編寫jsp頁面
啟動伺服器,在浏覽器中就可以看到hello world了。至此,hello world程式建立成功。
struts2項目開發小結
struts2的開發步驟主要分為:
準備jar包,建議直接使用struts-blank.war項目中的jar包,這是該版本最精簡的jar包了
在web.xml中添加struts2過濾器的相關配置(這個步驟在整個項目開發過程中隻會編寫一次)
開發action,針對不同的功能開發不同的action。就像在servlet中開發不同的servlet類似
在struts.xml配置檔案中添加上一步驟開發的action的相關配置
編寫相關的結果頁面
struts2表單處理
我們繼續在現在的項目基礎上建立一個表單,用以說明struts2中如何接受和設定參數。
建立login.jsp頁面如下:
建立loginaction
配置action
建立user類
編寫success.jsp和error.jsp檔案
success.jsp(省略部分代碼)
error.jsp(省略部分代碼)
注意在表單name屬性的書寫格式:<code>user.username</code>。但是我們在loginaction中并未使用任何初始化的方法構造user對象,那麼值是怎麼傳遞過來的呢?在struts2中使用了自動綁定的機制,當loginaction中擷取<code>user.username</code>屬性的時候,實際上會執行以下過程:
除了以上的方式,還可以使用action屬性擷取jsp頁面表單的值,就是form表單的屬性寫在action中,然後添加set和get方法,同樣可以擷取。不過個人感覺這種方式沒有上一種簡潔,是以就不貼代碼了。
struts2通路request、session和application對象
在struts2中有多種方式可以通路以上三個對象,但可以分為兩類:與servlet api解耦的通路方式(也是個人推薦使用的方式,一目了然,簡單清晰)和與servlet api耦合的通路方式。下面介紹與servlet api解耦的方式。
通過通路com.opensymphony.xwork2.actioncontext類可擷取以上三個對象,方式如下:
然後在success.jsp頁面通路以上對象設定的值: