2009-10-13 53 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}" />