Struts2教學
Struts2快速入門
Struts2 MVC架構
Struts2 是什麼?
Struts2 環境配置
Struts2 體系結構
Struts2 Hello World 實例
Struts2 配置文件
Struts2 Action/動作
Struts2 攔截器
Struts2 結果和結果類型
Struts2 值棧/OGNL
Struts2 文件上傳
Struts2 MySQL數據庫訪問
Struts2 發送郵件Email
Struts2 驗證框架
Struts2 基於XML校驗
Struts2 本地化/國際化(i18n)
Struts2 類型轉換
Struts2 主題和模板
Struts2 異常處理
Struts2 註釋
Struts2 註釋類型
Struts2 控件標籤
Struts2 iterator標籤
Struts2 if/else標籤
Struts2 merge標籤
Struts2 append標籤
Struts2 generator標籤
Struts2 數據標籤
Struts2 action標籤
Struts2 include標籤
Struts2 bean 標籤
Struts2 date 標籤
Struts2 param 標籤
Struts2 property 標籤
Struts2 set 標籤
Struts2 text 標籤
Struts2 url標籤
Struts2 表單標籤
Struts2 Ajax 標籤
Struts2和Spring集成
Struts2和Tiles集成
Struts2和Hibernate集成
Struts 2 hello world (XML版本)
Struts2註解示例
Struts2 @ResultPath註釋示例
Struts2 include(包含)多個配置文件
Struts2命名空間配置和解釋
Struts2開發者模式
如何刪除Struts2動作的後綴擴展名
使用Struts2動作
Struts2的ActionError&ActionMessage示例
Struts2模型驅動實例
Struts2映射攔截動作
Struts2重寫攔截器參數
Struts2攔截器棧的例子
Struts2 execAndWait攔截器例子
Struts2 <s:textfield>文本示例
Struts2 <s:password>密碼示例
Struts2 <s:hidden>隱藏值例子
Struts2 <s:textarea>文本域實例
Struts2 <s:radio>單選按鈕例子
Struts2單選預選按鈕值
Struts2 <s:checkbox>複選框例子
Struts2設置多個複選框缺省值
Struts2 <s:checkboxlist>多個複選框例子
Struts2 <s:select>下拉框例子
Struts2自動選擇下拉框的值
Struts2 <s:combobox>組合框的例子
Struts2 <s:head>示例
Struts2文件上傳例子
Struts2上傳多個文件例子
Struts2 <s:doubleselect>示例
Struts2 <s:updownselect>示例
Struts2 <s:optiontransferselect>示例
Struts2 <sx:datetimepicker>示例
Struts2 <sx:autocompleter>自動提示例子
Struts2 autocompleter+JSON例子
Struts2 <s:iterator>迭代器標籤示例
Struts2 if,elseif,else標籤示例
struts2 <s:append>標籤示例
Struts2 <s:generator>標籤示例
Struts2 <s:merge>標籤示例
Struts2 <s:sort>標籤示例
Struts2 <s:subset>標籤示例
Struts2 <s:a>標籤示例
Struts2 <s:action>標籤示例
Struts2 <s:bean>標籤示例
Struts2 <s:date>標籤示例
Struts2 <s:debug>標籤示例
Struts2 <s:include>標籤示例
Struts2 <s:i18n>標籤示例
Struts2 <s:param>標籤示例
Struts2 <s:property>標籤實例
Struts2 <s:push>標籤示例
Struts2 <s:set>標籤示例
Struts2 <s:texttag>標籤示例
Struts2 <s:url>標籤示例
Struts2資源包使用示例
Struts2本地化和國際化
Struts2 key鍵屬性示例
Struts2中文本地化問題
如何配置Struts2全局資源包
Struts2+Spring集成實例
Struts2+Quartz2調度集成實例
Struts2+Hibernate使用Full Hibernate Plugin集成
Struts2+Hibernate集成實例
Struts2+Spring+Hibernate集成實例
Struts2+Log4j集成
Struts2的FilterDispatcher和StrutsPrepareAndExecuteFilter有什麼不同?
Struts2獲取HttpServletRequest實例
Struts2獲取HttpServletResponse實例
如何獲取ServletContext對象
Struts2配置Action類的靜態參數
Struts2下載文件實例
Struts2和JSON實例

Struts2 註釋類型

Struts 2 應用程序可以使用Java5註釋作爲替代XML和Java屬性配置。這裏是清單的不同的類別有關的最重要的註解:

命名空間註釋(動作註釋):

@ Namespace註釋允許在Action類中,而不是基於零配置的約定動作的命名空間的定義。

@Namespace("/content") public class Employee extends ActionSupport{ ... }

結果註釋 - (動作譯註):

@ Result註解允許在Action類中,而不是一個XML文件中定義的動作結果。

@Result(name="success", value="/success.jsp") public class Employee extends ActionSupport{ ... }

結果註釋 - (動作譯註):

@ Results註解定義了一套動作的結果。

@Results({ @Result(name="success", value="/success.jsp"), @Result(name="error", value="/error.jsp") }) public class Employee extends ActionSupport{ ... }

註釋後(攔截註釋):

@After註解標誌着一個需要調用後的主要操作方法和執行結果的操作方法。返回值將被忽略。

public class Employee extends ActionSupport{ @After public void isValid() throws ValidationException { // validate model object, throw exception if failed } public String execute() { // perform secure action return SUCCESS; } }

註釋之前(攔截註釋):

@ Before註釋標記需要一個操作方法的主要操作方法之前被調用執行結果。返回值將被忽略。

public class Employee extends ActionSupport{ @Before public void isAuthorized() throws AuthenticationException { // authorize request, throw exception if failed } public String execute() { // perform secure action return SUCCESS; } }

BeforeResult註釋 - (攔截註釋):

@ BeforeResult註解標誌着一個結果之前需要執行的操作方法。返回值將被忽略。

public class Employee extends ActionSupport{ @BeforeResult public void isValid() throws ValidationException { // validate model object, throw exception if failed } public String execute() { // perform action return SUCCESS; } }

ConversionErrorFieldValidator註釋 - (驗證譯註):

此驗證註解如果有任何轉換錯誤進行了實地檢查,並適用於他們,如果他們存在。

public class Employee extends ActionSupport{ @ConversionErrorFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getName() { return name; } }

DateRangeFieldValidator註釋 - (驗證譯註):

這驗證註解檢查日期字段的值在指定範圍內。

public class Employee extends ActionSupport{ @DateRangeFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true, min = "2005/01/01", max = "2005/12/31") public String getDOB() { return dob; } }

DoubleRangeFieldValidator註釋 - (驗證譯註):

此驗證註解檢查雙字段有一個值,該值在指定範圍內。如果既不最小或最大,什麼都不會做的。

public class Employee extends ActionSupport{ @DoubleRangeFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true, minInclusive = "0.123", maxInclusive = "99.987") public String getIncome() { return income; } }

EmailValidator註釋 - (驗證譯註):

這驗證註解檢查一個字段是一個有效的E-mail地址,如果它包含一個非空的字符串。

public class Employee extends ActionSupport{ @EmailValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getEmail() { return email; } }

ExpressionValidator註釋 - (驗證譯註):

這種非字段級驗證驗證所提供的正則表達式。

@ExpressionValidator(message = "Default message", key = "i18n.key", shortCircuit = true, expression = "an OGNL expression" )

IntRangeFieldValidator註釋 - (驗證譯註):

這驗證註解檢查一個數字字段的值在指定的範圍內。如果既不最小或最大,什麼都不會做的。

public class Employee extends ActionSupport{ @IntRangeFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true, min = "0", max = "42") public String getAge() { return age; } }

RegexFieldValidator 註釋 - (驗證譯註):

這個註解驗證一個字符串字段,使用正則表達式。

@RegexFieldValidator( key = "regex.field", expression = "yourregexp")

RequiredFieldValidator 註釋 - (驗證譯註):

這驗證註解檢查一個字段不爲空。標註必須被應用在方法層面。

public class Employee extends ActionSupport{ @RequiredFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getAge() { return age; } }

RequiredStringValidator註釋 - (驗證譯註):

這驗證註解檢查一個字符串字段不爲空(即非空,長度> 0)。

public class Employee extends ActionSupport{ @RequiredStringValidator(message = "Default message", key = "i18n.key", shortCircuit = true, trim = true) public String getName() { return name; } }

StringLengthFieldValidator註釋 - (驗證譯註):

這個驗證檢查字符串字段是合適的長度。假定該字段是一個字符串。如果設置既不是minLength 也不是最大長度,什麼都不會做。

public class Employee extends ActionSupport{ @StringLengthFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true, trim = true, minLength = "5", maxLength = "12") public String getName() { return name; } }

UrlValidator註釋 - (驗證譯註):

這個驗證檢查一個字段是一個有效的URL。

public class Employee extends ActionSupport{ @UrlValidator(message = "Default message", key = "i18n.key", shortCircuit = true) public String getURL() { return url; } }

驗證註釋 - (驗證譯註):

如果想使用多個相同類型的註釋,這些註釋必須嵌套在@Validations() 註釋。

public class Employee extends ActionSupport{ @Validations( requiredFields = {@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "customfield", message = "You must enter a value for field.")}, requiredStrings = {@RequiredStringValidator(type = ValidatorType.SIMPLE, fieldName = "stringisrequired", message = "You must enter a value for string.")} ) public String getName() { return name; } }

CustomValidator註釋 - (驗證譯註):

這個註解可以用於自定義驗證。使用ValidationParameter的註釋,以提供額外的 params.

@CustomValidator(type ="customValidatorName", fieldName = "myField")

轉換註釋 - (類型轉換註釋):

這是一個標記註釋類型轉換類型級別。轉換註釋必須應用在類型級別。

@Conversion() public class ConversionAction implements Action { }

CreateIfNull註釋 - (類型轉換註釋):

這個註解設置類型轉換CreateIfNull。必須應用在域或方法級CreateIfNull註解。

@CreateIfNull( value = true ) private List<User> users;

元素註釋 - (類型轉換註釋):

這個註解設置元素進行類型轉換。必須應用在字段域或方法級元素的註解。

@Element( value = com.acme.User ) private List<User> userList;

關鍵註釋 - (類型轉換註釋):

這個註解設置進行類型轉換的關鍵。必須應用在域或方法級的關鍵註解。

@Key( value = java.lang.Long.class ) private Map<Long, User> userMap;

KeyProperty註釋 - (類型轉換註釋):

這個註解設置類型轉換KeyProperty。必須應用在域或方法級KeyProperty註解。

@KeyProperty( value = "userName" ) protected List<User> users = null;

TypeConversion註釋 - (類型轉換註釋):

這個註解的註解是用於類和應用程序的轉換規則。註解可以應用於TypeConversion在屬性和方法的級別。

@TypeConversion(rule = ConversionRule.COLLECTION, converter = "java.util.String") public void setUsers( List users ) { this.users = users; }