strtus2访问静态方法 及静态常量 数字日期格式化

 

<s:property value="%{getText('struts.webui.debt.list.operate.comfirm')}"/>

 

<s:property value="@com.mij.util.NumberUtils@format(#debt.allcost,getText('strtus.webui.format.percent'))"/>

 

<s:property value="@com.mij.util.DateUtils@format(#debt.orderDate,getText('strtus.webui.format.date'))"/>

                            <s:if test="#order.status==@com.mij.biz.sale.util.OrderUtil@ORDER_BJZ">
                                <a href="javascript:void(0)" οnclick="quote('<s:property value="#order.orderid"/>')"><s:text name="strtus.webui.factoryOrder.quotation"/></a>
                            </s:if>
                            <s:if test="#order.status==@com.mij.biz.sale.util.OrderUtil@ORDER_YDH">
                                <a href="javascript:void(0)" οnclick="delivery('<s:property value="#order.orderid"/>')"><s:text name="strtus.webui.factoryOrder.deliver"/></a>
                            </s:if>

 

 

 

对于数字的格式化,这里有两个参考:
global.format.percent = {0,number,##0.00'%'}
global.format.money = {0,number,$##0.00}

考虑目前在项目中使用最多的是显示附件大小,定义以下格式:
global.format.size.k={0,number,##0.00'K'}
global.format.size.m={0,number,##0.00'M'}
global.format.size.g={0,number,##0.00'G'}

如action有方法
public long getFilesize();  返回的大小是以byte为单位,在显示时通常是以k或M显示
则显示时:
<ww:text name="'global.format.size.k'">
    <ww:param value="filesize/1024"/>
</ww:text>
<ww:text name="'global.format.size.m'">
    <ww:param value="filesize/1048576"/>
</ww:text>
<ww:text name="'global.format.size.g'">
    <ww:param value="filesize/1073741824"/>
</ww:text>

比较遗憾的是似乎没有办法在资源文件中进行这个/1024的运算,试过{0/1024,number,##0.00'K'} 无法解析。只好在jsp里面用 value="filesize/1024"来计算实际值。不知道这里有没有别的更好的实现方式?

恩,顺便再介绍一下当时俺们team想出来的笨笨的方法,不要见笑啊,以上面的显示文件大小为例,想到的方法大致有以下几种:
1. 直接输出字符串的结果
   getFileSizeString(), 在里面用java代码判断大小并生成诸如"1.2k", "31.2M"的结果返回
2. 提供多个函数
  getFileSizeByte(), getFileSizeK(), getFileSizeM(), getFileSizeG()
3.使用javascript在client端格式化
      <script type = "text/javascript">     
      var resultNum = <ww:property value="fileSize" />;
       resultNum = format(resultNum);//类似的函数  
      document.write(resultNum);
     </script>
4.使用自定义标签

--------------------------------------------------------------------------------------------------------------
struts2中格式化输出数字和日期的方法

资源文件
......
#格式化数字或时间输出
global.format.date={0,date,yyyy-MM-dd}
global.format.money={0,number,¥##0.00 '元'}
......
JSP文件
格式化时间:  <s:text name="global.format.date"><s:param value="publishTime"></s:param></s:text>
格式化数字:  <s:text name="global.format.money"><s:param value="price"/></s:text>

 

 

JSTL 格式化

 

 

<%@ taglib prefix="f" uri="http://java.sun.com/jstl/fmt"%>

 

 

 

<fmt:formatDate value="${date}" type="both"/>
 2004-4-1 13:30:00 
 
<fmt:formatDate value="${isoDate}" type="both"/>
 2004-5-31 23:59:59 
 
Attribute: type; optional. Indicates what to print: date, time, or both.
<fmt:formatDate value="${date}" type="date"/>
 2004-4-1 
 
<fmt:formatDate value="${isoDate}" type="time"/>
 23:59:59 
 
Attribute: dateStyle; optional. Varies the date format.
<fmt:formatDate value="${isoDate}" type="date" dateStyle="default"/>
 2004-5-31 
 
<fmt:formatDate value="${isoDate}" type="date" dateStyle="short"/>
 04-5-31 
 
<fmt:formatDate value="${isoDate}" type="date" dateStyle="medium"/>
 2004-5-31 
 
<fmt:formatDate value="${isoDate}" type="date" dateStyle="long"/>
 2004年5月31日 
 
<fmt:formatDate value="${isoDate}" type="date" dateStyle="full"/>
 2004年5月31日 星期一 
 
Attribute: timeStyle; optional. Varies the time format.
<fmt:formatDate value="${isoDate}" type="time" timeStyle="default"/>
23:59:59 


<fmt:formatDate value="${isoDate}" type="time" timeStyle="short"/>
下午11:59 


<fmt:formatDate value="${isoDate}" type="time" timeStyle="medium"/>
23:59:59 


<fmt:formatDate value="${isoDate}" type="time" timeStyle="long"/>
 下午11时59分59秒 


<fmt:formatDate value="${isoDate}" type="time" timeStyle="full"/>
下午11时59分59秒 CDT 

<fmt:formatDate value="${isoDate}" pattern= "MM/dd/yyyy HH:mm aa" type="time" timeStyle="full"/></p>
 03/24/2009 18:23 PM                


Attribute: pattern; optional. Inidcates date/time custom patterns.
<fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy HH:mm:ss Z"/>
 星期四, 四月 1, 2004 13:30:00 -0600 


<fmt:formatDate value="${isoDate}" type="both" pattern="d MMM yy, h:m:s a zzzz/>
 31 五月 04, 11:59:59 下午中央夏令时

 

      currency:<fmt:formatNumber value="${salary}" type="currency" currencyCode="USD"/><br>
      percent:<fmt:formatNumber value="${salary/total}" type="percent" maxFractionDigits="4"/><br>

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值