【问题标题】:JSF Validator: ValidateDoubleRange passed a Double Object and it is think i am always out of range. Why?JSF Validator:ValidateDoubleRange 传递了一个 Double 对象,它认为我总是超出范围。为什么?
【发布时间】:2013-02-06 15:05:28
【问题描述】:
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,它是真的吗?

【问题讨论】:

  • maximumValueNumminimumValueNum 是如何被初始化的,你的 bean 的作用域是什么?

标签: jsf icefaces validation


【解决方案1】:

我认为你真的应该仔细检查你的“元素”映射或注释,也许它给你 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。

..

所以,简短的回答,它支持动态值。

问候。

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 2019-10-08
    • 1970-01-01
    • 2021-05-20
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 2015-07-02
    相关资源
    最近更新 更多