У меня возникли проблемы с получением тега Omnifaces skipValidators для работы с анимированными событиями Primefaces. В принципе, мне нужно обновить многие элементы в форме, основанной на выборе selectOneMenu, но мне также нужно сохранить любые уже введенные значения и не проверять форму. Однако я не могу заставить его работать. Вот небольшая демонстрация проблемы:Omnifaces skipValidators with Primefaces ajax
XHTML:
<h:form>
<h:panelGrid columns="3">
<p:outputLabel for="console" value="Basic:" />
<p:selectOneMenu id="console" value="#{testBean.value}" style="width:125px">
<f:selectItem itemLabel="Select One" itemValue="" />
<f:selectItem itemLabel="Xbox One" itemValue="Xbox One" />
<f:selectItem itemLabel="PS4" itemValue="PS4" />
<f:selectItem itemLabel="Wii U" itemValue="Wii U" />
<p:ajax event="change" process="@form" update="@form">
<o:skipValidators/>
</p:ajax>
</p:selectOneMenu>
<p:message for="console"/>
<p:outputLabel for="reqField" value="RequiredField:"/>
<p:inputText id="reqField" required="#{testBean.required}" requiredMessage="REQUIRED!"/>
<p:message for="reqField"/>
</h:panelGrid>
</h:form>
testBean:
@Named(value = "testBean")
@SessionScoped
public class TestBean implements Serializable {
private String value;
/**
* Creates a new instance of TestBean
*/
public TestBean() {
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public boolean isRequired() {
return this.value != null && !this.value.isEmpty();
}
}
При загрузке страницы, это выглядит правильно - нет Звездочка reqField
. После выбора одного из значений консоли страница изменяется правильно, и рядом с reqField
появляется звездочка. Однако после выбора значений консоли, если в меню снова выбрано «Выбрать один», отображается ошибка проверки.
Если я правильно понял, o:skipValidators
должен помешать проведению валидации. Что тут происходит?
Я использую omnifaces 2.3 и primefaces 5.1.12