2013-02-21 4 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 Validator: 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> 

В правильном Bean:

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

Так что я должен сделать вывод о том, что я не могу передать Двухместный объект в doubleRangeValidator, это правда?

+0

Как инициализируются 'maximumValueNum' и' minimumValueNum' и какова область вашего компонента? – kolossus

ответ

2

Я думаю, вам стоит по-настоящему дважды проверить ваши «элементы» или аннотации, возможно, это дает вам нулевое значение, а диапазон всегда равен нулю.

My Own Простой пример:

<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.

..

Итак, короткий ответ, он поддерживает динамические значения.

С уважением.

 Смежные вопросы

  • Нет связанных вопросов^_^