0

私のテストケースは次のようになります:

   void testFormattedDiv() {
    String template = """<itld:formattedDiv numerator="1" denominator="1" format="###,###" nullNotifier="-"/>"""
    String output = applyTemplate(template)
    assertEquals "0", output
}

私のtaglibコードは次のように始まります:

    def formattedDiv = {attrs, body ->
    Number numerator = attrs.get('numerator') as Number
    Number denominator = attrs.get('denominator') as Number

ただし、数値形式エラーが発生します。

Cannot cast object '1' with class 'java.lang.String' to class 'java.lang.Number'

番号を渡す正しい方法は何ですか?

4

2 に答える 2

0

文字列を有効な数値に解析するためのコードを追加できます (taglib 内)。

FormatTagLibのソースを見ると、デフォルトの grails タグ ライブラリもこのような処理を行うことがわかります。

DecimalFormat decimalFormat = new DecimalFormat()
def numerator = attrs.get('numerator')

if (!(numerator instanceof Number)) {
    numerator = decimalFormat.parse(numerator as String)
}
于 2013-08-27T06:31:49.130 に答える