私のアプリケーションには、以下のようないくつかのアイテムを表示する SelecOneMenu があります。
<h:selectOneMenu id="cmbInput" value="#{myBean.val}" required="true" requiredMessage="Some Message">
<f:selectItem itemLabel="Please select" noSelectionOption="true" />
<f:selectItems value="#{myBean.items}" />
<f:ajax event="valueChange" render="myPanel"/>
<f:ajax listener="#{myBean.myListener}"/>
</h:selectOneMenu>
基本的に、ユーザーがアイテムを選択するたびに、以下のようないくつかの入力フィールドを持つパネルが下にレンダリングされます..
<h:panelGroup id="myPanel" rendered="#{myBean.someFlag}">
<h:inputText id="input1" value="#{myBean.someVal}" required="true">
</h:panelGroup>
また、ユーザーを次のページに移動させる「次へ」ボタンがあります。
私が直面している問題は、ユーザーがドロップダウンから何かを選択し、パネルがレンダリングされる前に次のボタンをクリックすると、次のページに移動することです。しかし、そのパネルには入力が必要なフィールドが含まれているため、それを防ぎたいので、この場合は次をクリックすると検証エラーがスローされます。