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 Object,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,这是真的吗?

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 回答