2009-10-13 57 views
13

我想在Struts 2中用<s:property value="summary.total"/>标签显示的格式号码。有一个double值。我怎样才能做到这一点?我应该使用OGNLStruts 2中的格式号码<s:property/>标签

或者,也许我必须使用<s:text/>标记并在resuource文件中定义我的格式?

回答

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

+0

呀提到的,我发现,但我想,也许有一些快:) – prostynick 2009-10-13 07:37:02

+0

一个'double'值,并€?我当然希望你不要使用货币的浮点数。 – Svante 2009-10-13 08:14:39

+0

我从来没有提到€和特技从未提及'双';) – prostynick 2009-10-13 08:36:39

6

这一个更快:

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

而在你的属性文件这样的:

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

希望这有助于

16

的方式更快速

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

幸运! !

2

我有这个问题这样1.234,56

,所以我既者优先标签格式的数字Struts标签和FMT标签(FMT因为S:号码不存在)

所以我用以下syntaxe:

<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> 

,它的工作

1

如果你的财产是不是号码与您的行动,那么gettext的将不能进行这项工作。该模式只接受数字。在这种情况下,你可以用FMT去由@sarie

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