2015-04-07 1 views
0

У меня есть форма JSF. Я хочу, чтобы сообщение отображалось, когда пользователь ввел 0 в поле qty и нажал на кнопку Add To Card.Подтвердить числовое значение без специального валидатора в JSF

Вот форма JSF:

<h:form> 
     <h:inputText id="qtyField" value="#{booksBean.qty}"> 
      <!--What kind of validation should i use here?--> 
      <f:ajax event="blur" render="qtyMsg"/> 
     </h:inputText> 

     <h:message id="qtyMsg" for="qtyField"/> 

     <h:commandButton value="Add To Card" 
         action="#{booksBean.orderBook()}" 
         rendered="#{booksBean.qty>0}"> 
      <f:ajax execute="@form" rendered="@form"/> 
     </h:commandButton> 
</h:form> 

Мне нужен пользовательский класс валидатор просто, чтобы просто сравнить значение числа с нулем ли?

Как это:

@FacesValidator("myValidator") 
public class MyValidator implements Validator { 

@Override 
public void validate(FacesContext context, UIComponent component, Object value) { 

    if (intValue== 0 || intValue <0) { 
     throw new ValidatorException(new FacesMessage(...)); 
    } 
    //... 
} 

Есть ли более короткий путь без создания пользовательского класса валидатор?

ответ

2

Для этого можно использовать f:validateLongRange.

<h:inputText value="#{backingBean.input1}"> 
    <f:validateLongRange minimum="1" /> 
</h:inputText> 

Проверяет, является ли локальное значение компонента находится в пределах определенного диапазона. Значение должно быть любым числовым типом или строкой, которая может быть конвертирована в длинную.

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