Может ли кто-нибудь сказать мне, как автоматически установить <h:selectOneMenu>
(или любой другой компонент) со значениями в зависимости от другого <h:selectOneMenu>
, если пустые элементы с обязательным набором «правда» в форме? Если установить <a4j:support event="onchange" reRender="anotherElement" immediate="true" />
, ничего не изменится, потому что измененное значение не установлено. Но без immediate="true"
У меня всегда есть сообщение, что тот или иной элемент не может быть пустым. Вот пример кода, который не работает.Как установить выпадающее меню со значениями в зависимости от другого выпадающего меню, если оба параметра установлены на нужный
<h:outputLabel value="* #{msg.someField}: "/>
<h:panelGrid cellpadding="0" cellspacing="0">
<h:selectOneMenu id="someSelect"
value="#{MyBean.someObj.someId}"
required="true" label="#{msg.someField}"
>
<a4j:support event="onchange" reRender="anotherSelect" limitToList="true" immediate="true"/>
<f:selectItem itemValue=""/>
<f:selectItems value="#{MyBean.someList}"/>
</h:selectOneMenu>
<rich:message for="someSelect" styleClass="redOne"/>
</h:panelGrid>
<h:outputLabel value="* #{msg.anotherField}: "/>
<h:panelGrid cellpadding="0" cellspacing="0">
<h:selectOneMenu id="anotherSelect"
value="#{MyBean.someObj.anotherId}"
required="true" label="#{msg.anotherField}"
>
<f:selectItem itemValue=""/>
<f:selectItems value="#{MyBean.anotherList}"/>
</h:selectOneMenu>
<rich:message for="anotherSelect" styleClass="redOne"/>
</h:panelGrid>
<h:outputLabel value="* #{msg.name}: "/>
<h:panelGrid cellpadding="0" cellspacing="0">
<h:inputText id="myName" value="#{MyBean.someObj.myName}"
required="true" label="#{msg.name}"/>
<rich:message for="myName" styleClass="redOne"/>
</h:panelGrid>
Итак, здесь (я повторюсь), если я пытаюсь изменить «someSelect», затем «» anotherSelect должны обновлять свои значения, но это не потому, что либо когда он пытается получить значение «someSelect» он получает null (если immediate
установлен на true
) или проверка формы не выполняется при пустых элементах. Как я могу пропустить проверку, но получить это измененное значение из 'someSelect'?
Да, спасибо! Это так просто :) – mykola