天天看點

Struts2架構學習之一:Hello World程式

前言

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如下:

Struts2架構學習之一:Hello World程式

編寫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頁面通路以上對象設定的值: