如果条件失败,如何重置输入值Primefaces 3.5

时间:2014-03-24 06:52:03

标签: jsf-2 primefaces

我有问题。我试图将信息保存到数据库中,在此之前我检查一些条件,如if-else like:

if(condition){
        //Some Action
}else{
   getFacesContext().addMessage(null,MessageFactory.getMessage(ResourceBundle.FACES_BUNDLE.getName(), FacesBundle.LANDLINE_NUMBER_SHOULD_BE_TEN.getName()));
   getExternalContext().getFlash().setKeepMessages(true);
   return;
}

并且当条件不匹配时,我想恢复输入字段的先前值。

enter image description here

在这种情况下,22代替ss。但除了数字之外,该字段不接受输入。因此验证失败并通过growl显示消息Invalid Input

如何在java中将字段ss的值重置为22

请建议!

2 个答案:

答案 0 :(得分:0)

您可以使用JSF附带的默认验证器

 <p:inputText id="number" value="" label="Number">  
        <f:validateDoubleRange minimum="0" maximum="99" />  
 </p:inputText>  
 <p:message for="number" />  

但是如果您使用旧值重置字段,用户可能不知道他输入了什么。但是,在验证成功之前,您不会提交。

答案 1 :(得分:0)

由于输入文本组件实现了EditableValueHolder,您可以在输入组件上调用EditableValueHolder.resetValue()(或调用更方便的RequestContext.getCurrentInstance()。reset(inputTextId)),然后通过调用RequestContext.getCurrentInstance重新呈现它。 ()。update(inputTextId)如果它还没有通过p:ajax的update属性重新呈现。