struts2 自定义转换器
jopen
11年前
自定义转换器: 创建一个类,继承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