Struts2の<s:property value="summary.total"/>
タグで表示される数値をフォーマットしたいと思います。double
の値があります。どうやってやるの? OGNL
を使用する必要がありますか?
または、<s:text/>
タグを使用して、リソースファイルでフォーマットを定義する必要がありますか?
<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
を使用する方法を説明します。
より速い方法
<s:property value="getText('{0,number,#,##0.00}',{summary.total})"/>
幸運な!!
これはより速いです:
<s:property value="getText('struts.money.format', {summary.cost})" />
そしてあなたのプロパティファイルでこれを:
struts.money.format= {0,number,\u00A4##0.00}
この助けを願っています
この方法で数値をフォーマットするときにこの問題が発生しました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>
そしてそれは仕事です
プロパティがアクションの番号でない場合、getTextはそのプロパティで機能しません。パターンは数字のみを受け入れます。この場合、@ sarieが述べたようにfmtを使用できます
<fmt:formatNumber groupingUsed="true" type="currency" value="${amount}" />
最も速くて簡単な方法は、<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