Struts2自定义日期转换器

2014-11-24 08:49:42 ? 作者: ? 浏览: 1

1. 日期格式转换器


自定义日期格式转换器,可以动态调整日期格式,并更新到数据库


/**
* 保存日期格式的基础类。
*
* @author daichen
*
*/
public class DateConverter extends StrutsTypeConverter {

/**
* 内存中的日期格式
*/
private String format;

/**
* 可以从数据库中加载日期格式
*/
@PostConstruct
public void loadFormat() {
format = "yyyy-MM-dd";
}

@SuppressWarnings("rawtypes")
@Override
public Object convertFromString(Map context,String[] values, Class toClass) {
// Pre-validate
if (ArrayUtils.isEmpty(values) ||StringUtils.isEmpty(values[0])) {
return null;
}

Date date = null;
try {
date = new SimpleDateFormat(format).parse(values[0]);
} catch (ParseException e) {
date = null;
}
return date;
}

@SuppressWarnings("rawtypes")
@Override
public String convertToString(Map context, Objecto) {
if (o instanceof Date) {
return new SimpleDateFormat(format).format((Date) o);
}
return StringUtils.EMPTY;
}

/**
* 更改日期格式(可以同时更新到数据库)
* @param format
*/
public void changeFormat(String format) {
this.format = format;
}
}


2. 全局配置文件


新建xwork-conversion.properties,并与struts.xml放在一起。此配置文件中定义的转换器是全局的,也可以定义一个指定Action的转换器。


java.util.Date=com.cdai.ssh.common.DateConverter


3. JSP页面


<%@page
import="com.cdai.ssh.user.vo.*"
contentType="text/html;charset=utf-8"
%>
<%@taglib prefix="s"uri="/struts-tags"%>




Programmer inSY
















  • 4. 未解决问题


    4.1 配置文件位置


    struts.xml和xwork-conversion.properties要放在一起,但是不放在classes根位置就会报错。


    4.2 兼容Velocity


    Velocity不支持Struts2的自定义转换器。


    -->

    评论

    帐  号: 密码: (新用户注册)
    验 证 码:
    表  情:
    内  容: