У меня два компонента ввода на моей странице .У каждого из них есть конвертер (это конвертер, который проверяет пустые значения, как требуется JSF, но по некоторым причинам я не могу использовать jsf один, поэтому я сделал свой собственный конвертер).
У меня также есть ice:selectBooleanCheckbox
:
<ice:selectBooleanCheckbox
styleClass="graUserAppUserGroupAddChk"
value="#{userGroupTableNewRecordBean.addNewDomain}"
partialSubmit="true"
immediate="true"
valueChangeListener="#{userGroupTableNewRecordBean.addDomainListener}"></ice:selectBooleanCheckbox>
Как вы видите, я добавляю к нему атрибут immediate=true
, потому что когда я выбираю этот флажок, я хочу, чтобы фаза преобразования была пропущена, ноэто не работает , преобразователи все еще показывают свои предупреждения.Знаете ли вы, почему?
Я также добавил valueChangeListener к этому флажку и вызвал туда renderResponse напрямую, основываясь на этой цитате:
So in the value changed listener method for the dropdown lists, just
вызов метода renderResponse () из FacesContextобъект, проверка и преобразование обойдены, и вы все равно можете делать, что хотите.
public void addDomainListener(final ValueChangeEvent valueChangeEvent) {
// skip validation
logger.info("listener calleddddddddddddd");
FacesContext.getCurrentInstance().renderResponse();
}
Может быть, гуру JSF может помочь?
Большое спасибо ...
ОБНОВЛЕНИЕ : Я знаю, что решение было бы поставить флажок в отдельной форме, но я не могу себе этого позволить ...
ОБНОВЛЕНИЕ 2 : IИсправлен некоторый код для слушателя, поэтому теперь он вызывается при нажатии, но преобразователь все еще не работает и фаза ответа рендеринга не выполнена ...
ОБНОВЛЕНИЕ 3 : Это не проблема Icefaces ... Я пытался с h:selectBooleanCheckbox
, и это происходит так же ...