struts2的转换器

      struts2除了自身提供的类型转换以为,还允许自定义类型转换器,首先表单中的name属性必须和action中的属性同名,然后编写自定义的TypeConverter,可以实现TypeConverter接口,也可以继承DefaultTypeConverter来实现,最简单的是继承StrutsTypeConverter。不过前者比较复杂,后者比较方便。完成类型转换器以后,再将类型转换器注册,这样就能使用了,注册的时候,可以注册为局部类型转换器和全局类型转换器。 

 

public class DateConverter extends StrutsTypeConverter {

    private static final String FROMDATE = "yyyy-MM-dd";
    private static final String FROMDATETIME = "yyyy-MM-dd HH:mm:ss";

    @Override
    public Object convertFromString(Map context, String[] values, Class toClass) {
        if (values == null || values.length == 0) {
            return null;
        }
        SimpleDateFormat sdf = new SimpleDateFormat(FROMDATETIME);
        Date date = null;
        String dateString = values[0];
        if (dateString != null && !dateString.trim().equals("")
                && !dateString.trim().equals("null")) {
            try {
                date = sdf.parse(dateString);
            } catch (ParseException e) {
                date = null;
            }
            if (date == null) {
                sdf = new SimpleDateFormat(FROMDATE);
                try {
                    date = sdf.parse(dateString);
                } catch (ParseException e) {
                    date = null;
                }
            }
        }
        return date;
    }

    @Override
    public String convertToString(Map context, Object o) {
        if (o instanceof Date) {
            SimpleDateFormat sdf = new SimpleDateFormat(FROMDATETIME);
            return sdf.format(o);
        }
        return "";
    }

}

 

java.util.Date=com.iebc.utils.DateConverter

 

你可能感兴趣的:(Struts2 全局转换器)