2013-02-21 48 views
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是双对象,同样是element.minimumValue真实的,问题是验证一直认为我是超出范围(与任何给定值)...JSF验证器:ValidateDoubleRange传递了一个双对象,它被认为我总是超出范围。为什么?

如果我给具体的值:

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

它的工作原理就像一个魅力:

如果我使用一个字符串转换,也OK:

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

在适当的豆:

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

所以我需要做一个总结,我不能Double对象传递给doubleRangeValidator,是真的吗?

+0

“maximumValueNum”和“minimumValueNum”是如何初始化的?bean的范围是什么? – kolossus 2013-02-28 19:31:01

回答

2

我认为你应该仔细检查你的'元素'映射或注释,也许它给你null,而它的范围始终为零。

我自己的简单示例:

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

值:使用 “5” 时

public double getMinimum() { 
    return 10d; 
} 

public double getMaximum() { 
    return 100d; 
} 

结果:

验证错误:属性......:10和100.

..

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

问候。

相关问题