使用Struts 2動作

2021-10-06 19:57:21 字數 3015 閱讀 6061

在struts 2中,您將花費大部分時間進行操作。 動作類包含業務邏輯,檢索資源束,儲存資料,驗證並選擇應傳送回使用者的檢視結果頁面。 這是struts 2的核心,因此您必須了解動作的基本概念。

struts 2動作不會強制您實現任何介面或擴充套件類,只需要您實現乙個execute()方法,該方法返回乙個字串以指示應該返回哪個結果頁面。

package com.mkyong.user.action;

public class loginaction

}

struts.xml中,使用操作標籤類屬性配置操作類。 使用結果標籤定義哪個結果頁面應該返回給使用者,以及使用名稱屬性可以訪問該操作類的操作名稱

pages/welcome.jsp

現在,您可以通過.action副檔名字尾訪問操作。

http://localhost:8080/struts2example/user/validateuser.action
預設的.action是可配置的,只需更改「 struts.action.extension 」值即可。

struts 2帶有乙個可選的動作介面(com.opensymphony.xwork2.action)。 通過實現此介面,它帶來一些便利的好處,請參見源**:

package com.opensymphony.xwork2;

public inte***ce action

該介面非常簡單,帶有5個常用常量值:成功,錯誤,無,輸入和邏輯。 現在,動作類可以直接使用常量值。

package com.mkyong.user.action;

import com.opensymphony.xwork2.action;

public class loginaction

}

我不明白為什麼許多struts開發人員喜歡實現此action介面,最好擴充套件actionsupport。

支援類,這是提供介面的預設實現的一種常見做法。

actionsupport(com.opensymphony.xwork2.actionsupport),乙個非常強大且方便的類,提供一些重要介面的預設實現:

public class actionsupport implements action, validateable, 

validationaware, textprovider, localeprovider, serializable

actionsupport類使您可以執行以下操作:

1.驗證–宣告了validate()方法並將驗證**放入其中。

2.文字本地化–使用gettext()方法從資源束中獲取訊息。

package com.mkyong.user.action;

import com.opensymphony.xwork2.actionsupport;

public class loginaction extends actionsupport

public void setpassword(string password)

public string getusername()

public void setusername(string username)

//business logic

public string execute()

//****** validation

public void validate()

if("".equals(getpassword()))

}}

在大多數情況下,除非有理由不這樣做,否則應擴充套件此類以提供方便的功能。 這也是一門很好的學習班,了解如何實現一些重要的struts 2介面。

struts 2對註解有很好的支援,您可以刪除xml檔案,並在操作類中將其替換為@action

package com.mkyong.user.action;

import org.apache.struts2.convention.annotation.action;

import org.apache.struts2.convention.annotation.namespace;

import org.apache.struts2.convention.annotation.result;

import org.apache.struts2.convention.annotation.resultpath;

import com.opensymphony.xwork2.actionsupport;

@namespace("/user")

@resultpath(value="/")

public class validateuseraction extends actionsupport)

public string execute()

}

不用費神,只擴充套件actionsupport類,它適合大多數情況。

標籤: struts2

翻譯自:

Struts 2 模型驅動動作教程

struts 2 模型驅動動作例題 建立乙個模型驅動 modeldriven 動作 action 需要捕獲modeldriven介面,還需要包括模型驅動 modeldriven interceptor 模型驅動 modeldriven interceptor 已經包含在default stack裡了...

struts2標籤使用

專案中用到的幾個strut2標籤 1,s checkbox 該標籤對應html中標籤,當時在使用struts2時,使用struts標籤是非常方便的。若有需求 在action中,將checkbox的資料來源放入值棧 listsmalldevices new arraylist actioncontex...

struts2 使用總結

1 遍歷基礎型別的陣列或集合 此處也可寫成 但是這種寫法當雙重遍歷的時候,也就是嵌的時候,sj的值不會自動重新初始化,導致下一次外部迴圈的時候sj的值還是上一次最後一次遍歷時的值。2 判斷集合是否為空 3 s if 標籤的test遇到的問題 在用s if 的test做字串等於判斷時遇到了判斷不準確的...