1

Struts2 を使用して、末尾のゼロをトリムして文字列を数値にフォーマットしています。

メッセージのプロパティ:

format.number={0,number,#}

jspコード:

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

key.policyNumber は文字列です。「Error 500: java.lang.IllegalArgumentException: Cannot format given Object as a Number」というエラーが表示されます。

更新:整数を指定して同じコードを試してみましたが、動作します。お気に入り

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

アクションクラス

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

DBクラスで

PolicyObj.setPolicyNumber("0000111111");
4

2 に答える 2

1

JSPコードの小さな変更。文字列を数値に変換することで、ちょっとだまされました。

これがコードです。

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

1を掛けることは、私が行った1つの変更であり、機能しました。

于 2012-07-26T03:31:15.770 に答える
0

Struts2 uses the MessageFormat API to do the formatting and if you look at the java.text.NumberFormat class, there is no format method which takes a String as a parameter.

I don't think you can use formatting in this way. You'll have to convert the string first before you can format it with Struts2 in this manner.

于 2012-07-26T01:38:19.523 に答える