#jsf #richfaces
#jsf #richfaces
Вопрос:
Люди,
Это вопрос JSF, специально для Rich Faces 3.3.3.Final
Я пытаюсь заставить Rich Faces Ajax Validator (rich: ajaxValidator) работать со стандартным выпадающим меню JSF (h: selectOneMenu), но у меня ничего не получается.
В принципе, я хочу, чтобы проверка AJAX выполнялась, когда выпадающий список теряет фокус или выбирается элемент в выпадающем списке. Ниже приведен код для последнего, что я пробовал:
<h:selectOneMenu id="sector" value="#{thing.sector}">
<f:selectItems value="#{selectItemMap['sectors']}"
var="sector"
itemLabel="#{msg[sector.itemLabel]}"
itemValue="#{sector.itemValue}" />
<rich:ajaxValidator event="onblur"/>
</h:selectOneMenu>
Но я также пытался:
<rich:ajaxValidator event="oninputblur"/>
и
<rich:ajaxValidator event="onchange"/>
и
<rich:ajaxValidator event="onchanged"/>
и
<rich:ajaxValidator event="onblur"/>
<rich:ajaxValidator event="onchanged"/>
и
<rich:ajaxValidator event="onblur"/>
<rich:ajaxValidator event="onchange"/>
и
<rich:ajaxValidator event="oninputblur"/>
<rich:ajaxValidator event="onchange"/>
и
<rich:ajaxValidator event="oninputblur"/>
<rich:ajaxValidator event="onchanged"/>
Однако ни один из них не работает. Под этим я подразумеваю, что я не вижу, чтобы что-то происходило, хотя я могу видеть события, обрабатываемые в моей консоли журнала для других полей, таких как h: inputText, стандартный ввод HTML и rich: calendar.
Кому-нибудь удалось заставить Rich Faces AJAX validation работать для поля selectOneMenu и как вам это удалось? О, и для какой версии Rich Faces?
Спасибо.
Ответ №1:
Вот пример из моего старого приложения, использующего Richfaces 3.3:
<h:selectOneMenu
id="users"
value="#{userBean.user}"
required="true"
requiredMessage="Selected user is required."
converter="selectItemConverter">
<rich:ajaxValidator ajaxSingle="true" event="onchange" />
<f:validator validatorId="isValidValidator" />
<t:selectItems
value="#{userBean.users}"
var="user"
itemLabel="#{user.name}"
itemValue="#{user}" />
</h:selectOneMenu>
<rich:message for="users" errorClass="error"/>
Ответ №2:
Ого!
Работает следующее:
<h:selectOneMenu id="subSector" value="#{registerContracts.currentContract.subSector}">
<f:selectItems value="#{selectItemMap['RctSectorTypes']}" var="subSector" itemLabel="#{msg[subSector.itemLabel]}" itemValue="#{subSector.itemValue}" />
<rich:ajaxValidator event="onblur"/>
<rich:ajaxValidator event="onchange"/>
</h:selectOneMenu>
Очевидно, я был недостаточно усерден в тестировании вышеупомянутых опций.
Извините за это.