Struts 2中的格式编号<s:property> tag </s:property>

时间:2009-10-13 07:23:29

标签: java struts2 ognl

我想格式化Struts 2中<s:property value="summary.total"/>标记显示的数字。有一个double值。我怎样才能做到这一点?我应该使用OGNL吗?

或者我必须使用<s:text/>标签并在资源文件中定义我的格式?

6 个答案:

答案 0 :(得分:16)

更快的方式

<s:property value="getText('{0,number,#,##0.00}',{summary.total})"/>

幸运!!

答案 1 :(得分:9)

您需要将<s:text/><s:param/>一起使用。

属性文件:

summary.cost= € {0,number,##0.00}

JSP:

<s:text name="summary.cost"> 
    <s:param name="value" value="summary.total"/> 
</s:text>

This answer说明了如何在格式掩码中使用#0

答案 2 :(得分:6)

这个更快:

<s:property value="getText('struts.money.format', {summary.cost})" />

在您的属性文件中:

struts.money.format= {0,number,\u00A4##0.00}

希望这个帮助

答案 3 :(得分:2)

我有这个问题以这种方式格式化数字1.234,56

所以我首选两个标签struts tag和fmt tag(fmt因为s:number不存在)

所以我使用了以下语法:

 <s:label label="mylabel">
    <s:param name="value">
        <s:text  name="">
    <fmt:formatNumber  maxFractionDigits="2" pattern="#.###"  >1234.56</fmt:formatNumber>
        </s:text>   
    </s:param>      
 </s:label>

这是工作

答案 4 :(得分:1)

如果您的属性不是您的操作号码,那么getText将无法使用它。该模式仅接受数字。在这种情况下,您可以使用@sarie

中提到的fmt
<fmt:formatNumber groupingUsed="true" type="currency" value="${amount}" />

答案 5 :(得分:0)

最快,最简单的方法是使用<s:number />标签。

示例:

<s:number name="%{summary.total}" minimumFractionDigits="2" type="currency" currency="USD" />

有关标签的更多信息,https://struts.apache.org/maven/struts2-core/apidocs/org/apache/struts2/components/Number.html