歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Struts2實現自定義轉換器和全局類型轉換器

Struts2實現自定義轉換器和全局類型轉換器

日期:2017/3/1 11:08:47   编辑:Linux編程

在action中有個字段是birthday是date類型,當我們傳值時必須寫成1999-01-01它才會自動類型轉換,但在有些時候有這樣的需求要寫成19990101這樣默認就不會進行自動類型轉換,這樣我們可以寫一個自定義類型轉換器,實現轉換需求。

Struts2有兩種類型轉換器:

局部:對某個action轉換類型起作用

首先要自定義類型轉換器:

  1. public class DateTypeConverter extends DefaultTypeConverter {
  2. @Override
  3. public Object convertValue(Map<String, Object> context, Object value, Class toType) {
  4. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
  5. try {
  6. if(toType == Date.class){//當字符串向Date類型轉換時
  7. String[] params = (String[]) value;// request.getParameterValues()
  8. return dateFormat.parse(params[0]);
  9. }else if(toType == String.class){//當Date轉換成字符串時
  10. Date date = (Date) value;
  11. return dateFormat.format(date);
  12. }
  13. } catch (ParseException e) {}
  14. return null;
  15. }
  16. }

進行注冊:

創建HelloWorldAction-conversion.properties文件 HelloWorldAction是要注冊的action後邊是規定寫法

文件內容是Action中哪個屬性要進行類型轉換並只向的內容轉換器:

birthday=cn.test.type.converter.DateTypeConverter

全局:對所有action轉換類型起作用

在src下創建xwork-conversion.properties文件

內容為:java.util.Date=cn.test.type.converter.DateTypeConverter

Copyright © Linux教程網 All Rights Reserved