struts2 自定義轉換器

jopen 11年前發布 | 11K 次閱讀 Struts2 Web框架

自定義轉換器: 創建一個類,繼承StrutsTypeConverter 然后實現兩個抽象方法。

比如下面的時間轉換:

convertFromString  轉成對象;

convertToString,轉成string;

只有在使用<s:property/>的時候才能調用convertToString

package com.jelly.convert;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class DateConvert extends StrutsTypeConverter{
    private final SimpleDateFormat[] simpleDateFormat ={
            new SimpleDateFormat("yyyy-MM-dd"),
            new SimpleDateFormat("yyyy/MM/dd"),
            new SimpleDateFormat("yyyy年MM月dd日")
    };
    @Override
    public Object convertFromString(Map context, String[] values, Class toClass) {
        java.util.Date date = null;
        for(int i=0;i<simpleDateFormat.length;i++){
            try {
                date = simpleDateFormat[i].parse(values[0]);
            } catch (ParseException e) {
                continue;
            }
        }
        return date;
    }

    @Override
    public String convertToString(Map context, Object o) {
        if(o instanceof Date){
            return new SimpleDateFormat("yyyy-MM-dd").format(o);
        }
        return o != null ? o.toString(): null;
    }

}
如果這個轉換器針對整個項目。就在src目錄下創建一個xwork-conversion.properties,在里面寫入:java.util.Date=com.jelly.convert.DateConvert 然后就可以了

如果是針對于某個類,就放在類目了下 類名-conversion.properties

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!