2014-03-24 4 views
0

У меня проблема. Я пытаюсь сохранить информацию в базу данных, и до того, что я проверить некоторые условия, как если-то еще, как:Как сбросить входное значение, если условие не выполнено. Primefaces3.5

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. но поле не принимает ввода, кроме цифр. Таким образом, проверка завершается с ошибкой и показывает сообщение Invalid Input через рычание.

Как я могу сбросить значение поля ss до 22 в java?

Пожалуйста, предложите!

ответ

0

Вы можете использовать валидатор по умолчанию, который поставляется с JSF

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

Но если сбросить подано старое значение, пользователь может не знать, что он вошел. Однако вы не будете подчиняться, пока не подтвердите успех.

+0

Нет На самом деле я хочу, чтобы он работал как '', но с Java Side. Я даже попробовал 'RequestContext.getCurrentInstance(). Reset (« id »)', но это не сработало! :( – NDeveloper

0

Поскольку входной текстовый компонент реализует EditableValueHolder, вы можете вызвать EditableValueHolder.resetValue() на входном компоненте (или вызвать более удобный RequestContext.getCurrentInstance(). Reset (inputTextId)), а затем повторно отобразить его, вызвав RequestContext. getCurrentInstance(). update (inputTextId), если он еще не перерисовывается с помощью атрибута обновления p: ajax.

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