我想格式化<s:property value="summary.total"/>
Struts 2 中标签显示的数字。有一个double
值。我怎样才能做到这一点?我应该使用OGNL
吗?
或者也许我必须使用<s:text/>
标签并在资源文件中定义我的格式?
方式更快
<s:property value="getText('{0,number,#,##0.00}',{summary.total})"/>
幸运的!!
您需要使用<s:text/>
with <s:param/>
。
属性文件:
summary.cost= € {0,number,##0.00}
JSP:
<s:text name="summary.cost">
<s:param name="value" value="summary.total"/>
</s:text>
这个答案解释了如何使用#
和0
格式掩码。
这个更快:
<s:property value="getText('struts.money.format', {summary.cost})" />
在你的属性文件中:
struts.money.format= {0,number,\u00A4##0.00}
希望这有帮助
我有这个问题以这种方式格式化数字 1.234,56
所以我更喜欢标签 struts 标签和 fmt 标签(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>
这是工作
如果您的属性在您的操作中不是数字,那么 getText 将无法处理它。该模式只接受数字。在这种情况下,您可以使用@sarie 提到的 fmt
<fmt:formatNumber groupingUsed="true" type="currency" value="${amount}" />
最快最简单的方法是使用<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