Struts 2中格式不正确的数字

时间:2016-03-07 20:55:46

标签: struts2 localization numbers format ognl

我使用以下语法以适当的数字格式显示值,例如1,250.00

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

但是,它不起作用。 plan是具有属性金额的对象。

2 个答案:

答案 0 :(得分:1)

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

第二,如果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>

答案 1 :(得分:0)

如果值打印为1250.00,则表示格式不正确。方法getText()有许多重载方法,使用哪种方法由参数的类型和计数决定。

要将参数传递给getText()方法,您可以使用OGNL列表构造{}。并且参数应该列为单个值,而不是&#34;对象列表&#34;。完全它应该是Double的列表,列表中有一个元素。

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