我想格式化Struts 2中<s:property value="summary.total"/>
标记显示的数字。有一个double
值。我怎样才能做到这一点?我应该使用OGNL
吗?
或者我必须使用<s:text/>
标签并在资源文件中定义我的格式?
答案 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