struts2中的自定義類型轉換器

自定義類型轉換器

自定義一個時間類型的轉化器類,類必須繼承DefaultTypeConverter,並且重寫convertValue方法

public class DateConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map<String, Object> context,Object value,Class toType) {
      SimpleDateFormat dateFormat=new SimpleDateFormat("yyyyMMdd");
      try {
        if(toType==Date.class)
        {
//從url或表單獲取提交的元素可能是複選框的提交,所以需要使用數組來獲取
           String[] params=(String[])value;
              return dateFormat.parse(params[0]);
        }
        else if(toType==String.class)
        {
           Date date=(Date)value;
           return dateFormat.format(date);
        }
      } catch (ParseException e) {
        e.printStackTrace();
      }
      return null;
   }
}

轉換器中的方法convertValue是雙向的,比如在頁面提交的時候參數value爲頁面的提交或url的參數,toType爲需要轉換的要類型,這個例子是將string類型轉換爲Date類型,當要顯示到頁面的時候value爲Date而toType爲需要轉換的類型爲string

將上面的類型轉換器註冊爲局部類型轉換器:

在Action類所在的包下放置ActionClassName-conversion.properties文件,ActionClassName是Action的類名,後面的-conversion.properties是固定寫法。在properties文件中的內容爲:

屬性名稱=類型轉換器的全類名


將上面的類型轉換器註冊爲全局類型轉換器:

在WEB-INF/classes下或SRC文件夾下放置xwork-conversion.properties文件。在properties文件中的內容爲:

待轉換的類型=類型轉換器的全類名

對於本例而言, xwork-conversion.properties文件中的內容爲:

java.util.Date=類型轉換器的全類名


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章