Struts 中的数字格式不正确 2

Numbers not formatted properly in Struts 2

我正在使用以下语法以正确的数字格式显示值,例如1,250.00.

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

但是,它不起作用。 plan 是一个具有 属性 数量的对象。

首先,如果你想显示一个列表中的多个值,你需要一个迭代器;

其次,如果 plan 是具有 getter 方法的操作中的列表

public List<Something> getPlan() { return plan; }

那你就不用把#放在变量前面了。

适合您的案例的正确代码是:

<s:iterator value="plan">
    <s:property value="getText('{0,number,#,##0.00}',{amount})" />
</s:iterator>

关于这个话题有一个related Q&A


编辑

既然你有

<s:iterator value="list" var="plan" status="status"> 
    <div class="values"> 
        $ <s:property value="%{getText('{0,number,#,##0.00}',#plan.amount)}"/> 
    </div>
</s:iterator>

那么应该是:

<s:iterator value="list">
    <s:property value="getText('{0,number,#,##0.00}',{amount})" />
</s:iterator>

如果打印的值类似于 1250.00,那么它的格式不正确。方法getText()有很多重载方法,使用哪个方法由参数的类型和数量决定。

要将参数传递给 getText() 方法,您可以使用 OGNL 列表构造 {}。参数应列为单个值,而不是 "list of object"。完美的应该是 Double 的列表,列表中有一个元素。

<s:set var="amount" value="%{1250.0}"/>
<s:property value="%{getText('{0,number,#,##0.00}',{#amount})}" />