1
I have an inputtext, nothing fancy in it:

                <ice:inputText value="Test" rendered="#{!element.flag}"
                               partialSubmit="true" >
                    <f:validateDoubleRange minimum="#{element.minimumValueNum}"
                                           maximum="#{element.maximumValueNum}"/>
                </ice:inputText>

element.minimumValue は Double オブジェクトです。同じことが element.minimumValue にも当てはまります。問題は、バリデーターが常に範囲外であると考えていることです (任意の値で)...

具体的な値を指定すると:

            <ice:inputText value="Test" rendered="#{!element.flag}"
                           partialSubmit="true" >
                <f:validateDoubleRange minimum="10"
                                       maximum="100"/>
            </ice:inputText>

それは魅力のように機能します:

文字列変換を使用する場合も問題ありません。

                <ice:inputText value="Test" rendered="#{!element.flag}"
                               partialSubmit="true" >
                    <f:validateDoubleRange minimum="#{element.maximumValueNumString}"
                                           maximum="#{element.maximumValueNumString}"/>
                </ice:inputText>

適切な Bean で:

... public String getMaximumValueNumString() {
     return maximumValueNum.toString();
 }
 public String getMinimumValueNumString() {
    return minimumValueNum.toString();
}...

それで、Double オブジェクトを doubleRangeValidator に渡すことができないという結論を出す必要があります。それは TRUE ですか?

4

1 に答える 1

2

「要素」マッピングまたは注釈を本当に再確認する必要があると思います。おそらくそれはnullを与えており、範囲は常にゼロです。

私自身の簡単な例:

    <ice:inputText value="#{transfer.monto}" partialSubmit="true" id="monto">
      <f:validateDoubleRange minimum="#{transfer.minimum}" maximum="#{transfer.maximum}"/>
    </ice:inputText>

値:

public double getMinimum() {
    return 10d;
}

public double getMaximum() {
    return 100d;
}

「5」を使用した場合の結果:

検証エラー: 属性 ......: 10 と 100。

..

つまり、短い答えですが、動的な値をサポートしています。

よろしく。

于 2013-02-28T18:49:52.473 に答える