#jsf-2
#jsf-2
Вопрос:
Моя проблема, о которой я думаю, проста, но я не могу найти четкого решения.
У меня есть три selectOneMenu, и я хочу, чтобы первый всегда отображался, второй отображался, если для первого выбрано какое-то значение, а третий отображался, если для второго выбрано какое-то значение.
Связь между первым и вторым работает хорошо, но не работает между вторым и третьим.
Когда я меняю значение для первого selectOneMenu, второе selectOneMenu отображается или скрывается правильно. Но когда я меняю значение для второго, с третьим selectOneMenu ничего не происходит, например, если рендеринг f: ajax не запускается.
Ниже приведен код jsf:
<h:panelGrid columns="2">
<h:outputText value="Type Paiement" />
<h:selectOneMenu
value="#{employeurBean.idTypePaiement}">
<f:selectItem itemValue="" itemLabel="Choix typePaiement" />
<f:selectItems value="#{typePaiementBean.typesPaiement}" var="vtp"
itemLabel="#{vtp.libelle}" itemValue="#{vtp.idTypePaiement}" />
<f:ajax event="change" render="gmodp" />
</h:selectOneMenu>
</h:panelGrid>
<h:panelGrid id="gmodp">
<h:panelGroup rendered="#{employeurBean.idTypePaiement == 2}">
<h:outputText value="Mode Paiement" />
<h:selectOneMenu
value="#{employeurBean.idModePaiement}">
<f:selectItem itemValue="" itemLabel="Choix mode Paiement" />
<f:selectItems value="#{modePaiementBean.modesPaiement}" var="vmp"
itemLabel="#{vmp.libelle}" itemValue="#{vmp.idModePaiement}" />
<f:ajax event="change" render="grib"/>
</h:selectOneMenu>
</h:panelGroup>
</h:panelGrid>
<h:panelGrid id="grib">
<h:panelGroup rendered="#{employeurBean.idModePaiement == 1}">
<h:outputText value="Compte" />
<h:inputText value="#{employeurBean.compte}">
</h:inputText>
</h:panelGroup>
</h:panelGrid>
Есть ли какая-нибудь идея для достижения этого.
Большое спасибо за вашу помощь
Ответ №1:
Эта конструкция завершится ошибкой, если компонент находится в области запроса и / или вы выполняете бизнес-действия (например, предварительную загрузку списка) в методах получения вместо методов прослушивания действий. Убедитесь, что компонент помещен в область представления и что вы выполняете бизнес-действия в методах прослушивателя действий.
Если это не решит проблему, то вам действительно нужно опубликовать код резервного компонента вместе с кодом представления в вашем вопросе.
Комментарии:
1. Спасибо за ваш ответ, я упростил код моего резервного компонента, чтобы опубликовать его, наконец, с упрощенным кодом проблема исчезла. итак, проблема заключалась в том, что вспомогательный компонент имеет родительский компонент, и этот родительский компонент не был сериализуемым, я делаю его сериализуемым, и проблема решена.