struts2将字符串格式化为数字,不带逗号和修剪尾随零

时间:2012-07-25 18:31:39

标签: struts2

我正在使用Struts2将字符串格式化为带有修剪尾随零的数字。

messages.properties:

format.number={0,number,#}

jsp代码:

<s:text name="format.number">
    <s:param name="value" value="%{key.policyNumber}" />
</s:text>

key.policyNumber是一个String,我收到错误为“错误500:java.lang.IllegalArgumentException:无法将给定对象格式化为数字

UPDATE:我尝试使用相同的代码给出一个Integer然后它可以工作。像

<s:text name="format.number">
    <s:param name="value" value="%{key.orderNum}" />
</s:text>

动作类

Map<PolicyObj, CustInfo> mapObj = getDBPolicyDetails();

在DB类

PolicyObj.setPolicyNumber("0000111111");

2 个答案:

答案 0 :(得分:1)

JSP代码的小变化。通过将字符串转换为数字来欺骗我。

这是代码。

<s:text name="format.number">
    <s:param name="value" value="key.policyNumber * 1" />
</s:text>

乘以1 是我所做的一项改变,并且有效。

答案 1 :(得分:0)

Struts2使用MessageFormat API进行格式化,如果查看java.text.NumberFormat类,则没有format方法将String作为参数。

我认为你不能以这种方式使用格式化。在以这种方式使用Struts2对其进行格式化之前,您必须先转换字符串。