2013-02-21 46 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.

..

所以,簡短的回答,它支持動態值。

問候。

相關問題