自定义struts日期显示格式

Struts日期显示格式
一、使用properties配置文件
1.写一个Messages.properties配置文件:
#datetime:
global.format.date={0,date,yyyy-MM-dd}
global.format.time={0,date,HH:mm:ss}
global.format.datetime={0,date,yyyy-MM-dd HH:mm:ss}
global.format.datetime02={0,date,yyyy-MM-dd HH:mm}
#datetime是控制时间格式

2.页面上:<s:text name="global.format.date"><s:param value="deployDate" /></s:text>

其中:<s:text name="global.format.date">控制你要显示的时间格式

      <s:param value="deployDate" />是你要显示的时间
<s:text>

二、使用<s:data>标签
<input type="text" value="<s:date name="deployDate" format="yyyy-MM-dd" />" />
其中name="deployDate"是你要显示的时间,format="yyyy-MM-dd"是显示的格式

struts自带的日期格式化,仅支持date类型的数据,因此使用自定义标签扩展此功能
以下为标签主要代码
Java代码   收藏代码
  1. public boolean start(Writer writer){  
  2.         boolean result = super.start(writer);  
  3.         try {  
  4.             Date date=getDateValue();/*获取日期时间对象*/  
  5.             SIMPLE_DATE_FORMAT.applyPattern(getTargetFormat());/*设置要显示日期格式*/  
  6.             writer.write(SIMPLE_DATE_FORMAT.format(date));  
  7.         } catch (Exception e){  
  8.             log.error(e.getMessage(),e);  
  9.             return false;  
  10.         }  
  11.         return result;  
  12.     }  
  13.   
  14.     private String getTargetFormat(){  
  15.         targetPattern = TextProviderHelper.getText(targetPattern, "", stack);  
  16.         if(StringUtils.isEmptyString(targetPattern)){  
  17.             if("datetime".equals(dateType)){  
  18.                 targetPattern= SelfCareConst.DATE_DDMMMYYYYHH24MMSS;  
  19.             }else{  
  20.                 targetPattern = SelfCareConst.DATE_DDMMMYYYY;  
  21.             }  
  22.         }  
  23.         return targetPattern;  
  24.     }  
  25.   
  26.     private Date getDateValue() throws ParseException {  
  27.         Object obj = stack.findValue(value);  
  28.         if (obj instanceof Date) {  
  29.             return (Date) obj;  
  30.         } else if (obj instanceof String || obj instanceof Integer || obj instanceof Long) {  
  31.             /*如果在页面直接写value=“201212”等类似,则此value最终会被转换成Long或者Integer。因此在此判断*/  
  32.             SIMPLE_DATE_FORMAT.applyPattern(getSrcFormat());  
  33.             return SIMPLE_DATE_FORMAT.parse(String.valueOf(obj));  
  34.         }else {  
  35.             log.error("unSupport the type of ["+value+"], the type is ["+obj.getClass().getName()+"]");  
  36.             return null;  
  37.         }  
  38.     }  
  39.   
  40.     private String getSrcFormat()  
  41.     {  
  42.         srcPattern = TextProviderHelper.getText(srcPattern, "", stack);  
  43.         if(StringUtils.isEmptyString(srcPattern)){  
  44.             log.error("Srcpattern is null.");  
  45.         }  
  46.         return srcPattern;  
  47.     }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不讲理的胖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值