我使用以下语法以适当的数字格式显示值,例如1,250.00
。
<s:property value="%{getText('{0,number,#,##0.00}',#plan.amount)}" />
但是,它不起作用。 plan
是具有属性金额的对象。
答案 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})}" />