web-dev-qa-db-ja.com

Struts 2 <s:property />タグのフォーマット番号

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

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

14
prostynick

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

Thisanswer フォーマットマスクで#0を使用する方法を説明します。

10
Trick

より速い方法

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

幸運な!!

16
Juanmi

これはより速いです:

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

そしてあなたのプロパティファイルでこれを:

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

この助けを願っています

6
Alfredo Osorio

この方法で数値をフォーマットするときにこの問題が発生しました1.234,56

だから私は両方のタグstrutsタグとfmtタグを好みました(s:numberが存在しないためfmt)

だから私は次の構文を使用しました:

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

そしてそれは仕事です

2
sarie

プロパティがアクションの番号でない場合、getTextはそのプロパティで機能しません。パターンは数字のみを受け入れます。この場合、@ sarieが述べたようにfmtを使用できます

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

最も速くて簡単な方法は、<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

0
Yan Pak