分享一个struts2日期转换器的代码

来源:转载

struts的日期转换器对不同电脑会作出不同的转换,在开发人员电脑上没有问题,但到了部署服务器上却总是报类型无法转换的错误。

网上找了很多资料都没有适合自己的日期转换器。

只能自己参考着写一个了。

了解了struts2转换器的原理后其实也不难。

下面分享下,一个转换没有时分秒日期,和有时分秒日期两种类型的日期转换器代码。

package com.iemis.dye.conver;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;public class DateConverter extends StrutsTypeConverter { private static final String FORMATDATE = "yyyy-MM-dd"; private static final String FORMATTIME = "yyyy-MM-dd HH:mm:ss"; @SuppressWarnings("unchecked")@Override public Object convertFromString(Map context, String[] values, Class toClass) { if (values == null || values.length == 0) { return null; } //有时分秒的要先转换 SimpleDateFormat sdf = new SimpleDateFormat(FORMATTIME); Date date = null; String dateString = values[0]; if (dateString != null) { try { date = sdf.parse(dateString); } catch (ParseException e) { date = null; } if(date == null) { sdf = new SimpleDateFormat(FORMATDATE); try { date = sdf.parse(dateString); } catch (ParseException e) { date = null; } } } return date; } @SuppressWarnings("unchecked")@Override public String convertToString(Map context, Object o) { if (o instanceof Date) { SimpleDateFormat sdf = new SimpleDateFormat(FORMATTIME); return sdf.format((Date)o); } return ""; }}

xwork-conversion.properties

中加入java.util.Date=com.iemis.dye.conver.DateConverter

特别提醒:java.util.Date要写全名,有很多人可能容易写成java.lang.Date

分享给朋友:
您可能感兴趣的文章:
随机阅读: