我正在使用Struts2将字符串格式化为尾部带有修剪零的数字。
消息.属性:
format.number={0,number,#}
jsp代码:
<s:text name="format.number">
<s:param name="value" value="%{key.policyNumber}" />
</s:text>
key.policyNumber是一个字符串,我得到的错误为"错误500:java.lang.IollegalArgumentException:无法将给定对象格式化为数字"
更新:我尝试了相同的代码,给出了一个Integer,然后它就工作了。像
<s:text name="format.number">
<s:param name="value" value="%{key.orderNum}" />
</s:text>
行动类
Map<PolicyObj, CustInfo> mapObj = getDBPolicyDetails();
DB类
PolicyObj.setPolicyNumber("0000111111");
JSP代码中的小更改。我把字符串转换成数字有点上当了。
这是代码。
<s:text name="format.number">
<s:param name="value" value="key.policyNumber * 1" />
</s:text>
乘以1是我做的一个更改,它起作用了。
Struts2使用MessageFormat
API进行格式化,如果查看java.text.NumberFormat
类,则不存在将String作为参数的format
方法。
我认为你不能用这种方式使用格式。您必须先转换字符串,然后才能使用Struts2以这种方式对其进行格式化。