2009-10-13 31 views
13

<s:property value="summary.total"/>タグで表示される数字をStruts 2にフォーマットしたいと思います。doubleという値があります。どうやってやるの? OGNLを使用する必要がありますか?Strutsのフォーマット番号2 <s:property/>タグ

または、<s:text/>タグを使用し、再フォーマットファイルで自分のフォーマットを定義する必要がありますか?

答えて

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

うん@sarieで述べたようにこの場合はfmtをして行くことができる、私はそれを見つけましたが、私は多分何か速く:) – prostynick

+0

'double'値、および€があることを考えましたか?私は確かにあなたが通貨のために浮動小数点数を使用しないことを願っています。 – Svante

+0

私は決してユーロを言及せず、トリックは決して 'double'を言及しなかった;) – prostynick

6

この1つは高速です:

<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

に番号をフォーマットするために、この問題を抱えていたが、タグとFMTタグ支柱(sのため、FMTを:数が存在しない)

ので、私が使用次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> 

とあなたの財産は数が、その後のgetTextがそれに動作しません、あなたのアクションではない場合、それは仕事

1

です。パターンは数字のみを受け入れます。

<fmt:formatNumber groupingUsed="true" type="currency" value="${amount}" /> 
関連する問題