首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts2 類型轉換基礎(一):常規類型、自定義類型與錯誤處理

     編輯:Java 相關知識

核心機制

Struts2 類型轉換基於 OGNL 表達式,Web 表單提交的字符串自動轉換為 Action 屬性類型(基本類型、日期、自定義對象)。轉換異常由 conversionError 攔截器捕獲並轉為字段錯誤。

內建轉換器

涵蓋:String、boolean、char、int/long/float/double、Date、陣列(元素為 String)、集合(元素為 String,封裝為 ArrayList)。

自定義類型轉換:兩種方式

方式一:實現 TypeConverter(通用)

  1. 定義領域對象(如 Point{x,y})
  2. 繼承 DefaultTypeConverter 重寫 convertValue(context, value, toType),雙向轉換:
    - 字符串 "x,y" → Point 對象
    - Point → "[x=...,y=...]" 字符串
  3. 註冊轉換器(三選一):
    • 局部:ActionName-conversion.properties 指定屬性級轉換器
    • 全局:xwork-conversion.properties 指定類級轉換器
    • 註解:JDK 1.5 @TypeConversion(文中暫無示例)

方式二:表單字段直接映射(簡易)

表單輸入名為 point3.x、point3.y,Action 擁有 Point point3 屬性及 getter/setter,Struts2 自動實例化 Point 並調用 setter 填充,無需編寫轉換器。

類型轉換錯誤處理流程

  1. 轉換失敗
  2. conversionError 攔截器捕獲
  3. 錯誤信息存入 ActionContext
  4. 讀取 ActionName.properties 獲取字段提示(格式:invalid.fieldvalue.屬性名=提示文本)
  5. 跳轉 input 邏輯視圖,頁面用 <s:fielderror/> 顯示

頁面顯示差異

  • Struts2 標籤(<s:form>)自動顯示錯誤
  • HTML 標籤需手動加入 <s:fielderror/>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved