天天看點

struts2 自定義轉換器

自定義轉換器: 建立一個類,繼承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