我有一个JSF表单。当用户在0
字段中输入qty
并点击Add To Card
按钮时,我希望显示一条消息。
这是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(...));
}
//...
}
如果没有创建自定义验证器类,有没有更短的方法?
答案 0 :(得分:2)
您可以使用f:validateLongRange
。
<h:inputText value="#{backingBean.input1}">
<f:validateLongRange minimum="1" />
</h:inputText>
检查组件的本地值是否在某个特定范围内 范围。该值必须是任何数字类型或可以是的字符串 转换为长。