Struts2 自定义日期类型转换

xwork-conversion.properties文件,程序自动加载web.xml,根据web.xml中的配置,自动找到struts.xml文件,此时如果struts.xml同级目录存在xwork-conversion.properties文件,程序就会自动加载该文件。

xwork-conversion.properties它是一个格式转换器。

例:

xwork-conversion.properties文件中配置:

java.util.Date=com.xxx.DateConverter

DateConvert.java:

package com.xxx;

import java.text.DateFormat;   
import java.text.ParseException;   
import java.text.SimpleDateFormat;   
import java.util.Date;   
import java.util.Map;   
  
import org.apache.log4j.Logger;   
import org.apache.struts2.util.StrutsTypeConverter;  

public class DateConverter extends StrutsTypeConverter {   
  
    private static final Logger log = Logger.getLogger(DateConverter.class);   
    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";   
       
    public static final DateFormat[] ACCEPT_DATE_FORMATS = {   
            new SimpleDateFormat(DEFAULT_DATE_FORMAT),   
            new SimpleDateFormat("yyyy年MM月dd日"),   
            new SimpleDateFormat("yyyy/MM/dd") };   
  
   
    public DateConverter() {   
    }   
  
    
    @Override  
    public Object convertFromString(Map context, String[] values, Class toClass) {   
        if (values[0] == null || values[0].trim().equals(""))   
            return null;   
        for (DateFormat format : ACCEPT_DATE_FORMATS) {   
            try {   
                return format.parse(values[0]);   
            } catch (ParseException e) {   
                continue;   
            } catch (RuntimeException e) {   
                continue;   
            }   
        }   
        log.debug("can not format date string:" + values[0]);   
        return null;   
    }   
  
    @Override  
    public String convertToString(Map context, Object o) {   
        if (o instanceof Date) {   
            SimpleDateFormat format = new SimpleDateFormat(   
                    DEFAULT_DATE_FORMAT);   
            try {   
                return format.format((Date) o);   
            } catch (RuntimeException e) {   
                return "";   
            }   
        }   
        return "";   
    }   
  

}

JSP页面使用Struts标签时,如果属性的类型为日期,会自动转换成字符串显示,不用再使用s:date标签了。

例:

<s:textfield id="bean.model.changeDate" name="bean.model.changeDate"></s:textfield>
其中,changeDate为日期格式,此时输出的结果应该是:

<input type="text" name="bean.model.changeDate" value="2017-07-11" id="bean.model.changeDate"/>





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值