struts2類型轉換器

具體來講,整個過程能夠分爲兩個步驟: 1.實現TypeCoverter接口,或者繼承DefaultTypeConverter實現類(該類實現了TypeCoverter接口),經過繼承該實現類來實現本身的類型轉換器。重寫convertValue方法便可。爲了簡化類型轉換器的實現,Struts2提供了一個StrutsTypeConverter抽象類,這個抽象類是DefaultConverter的子類 2.給須要進行轉換的類或屬性指定類型轉換器 根據做用域的不一樣能夠將配置文件分爲兩種:類級別和全局級別。 A、註冊局部類型轉換器:僅僅對某個Action的屬性起做用。 B、註冊全局類型轉換器:對全部Action的特定類型的屬性都會生效。 類級別時,左邊是類中需進行類型轉換的屬性的名稱;全局級別時,左邊是需進行類型轉化的類型的全名。 局部類型轉換配置文件遵循以下的命名規則: ClassName-conversion.properties 內容相似:Notice.createtime=com.NoticeConverter 全局類型轉換器 xwork-conversion.properties java.util.Date=com.DateConverter org.apache.struts.action2.util.StrutsTypeConverter,它能幫助咱們方便的編寫一個類型轉換器。這個類提供了兩個抽象方法,以便咱們將目標類型轉換爲String或者將String轉換爲目標類型。這兩個方法是convertFromString和convertToString public class NoticeConverter extends StrutsTypeConverter {     private static final Log logger = LogFactory.getLog(NoticeConverter.class);          public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";          public static final String[] ACCEPT_DATE_FORMATS = {         "yyyy-MM-dd HH:mm:ss",         DEFAULT_DATE_FORMAT     };     public OeBaseNoticeConverter() {     }     @SuppressWarnings("unchecked")     public Object convertFromString(Map context, String[] values, Class toClass) {         if(logger.isDebugEnabled()){             logger.debug("converFromString....");             if(values!=null){                 logger.debug("convert from  :" + values[0]);             }         }         if (values[0] == null || values[0].trim().equals(""))             return null;                  String dateStr=values[0];         dateStr=dateStr.replace("T", " ");         try{             return DateUtils.parseDate(dateStr, ACCEPT_DATE_FORMATS);         }catch(Exception ex){             logger.debug("parse date error:"+ex.getMessage());         }         return null;     }     @SuppressWarnings("unchecked")     public String convertToString(Map context, Object o) {         if (o instanceof Date) {             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");             try {                 return format.format((Date) o);             } catch (RuntimeException e) {                 logger.error(e.getMessage());                 return "";             }         }         return "";     } }
相關文章
相關標籤/搜索