<h:form>
<h:selectManyMenu id="carsList"
value="#{bean.carList}"
style="width:400px; height:100px" label="List">
<f:selectItems value="#{bean.cars}" var="i"
itemLabel="#{i.code}" itemValue="#{i.Name}" />
<f:selectItem itemLabel="Other" itemValue="other"/>
<f:ajax event="change" execute="@this" render="othermodel"/>
</h:selectManyMenu>
<br></br>
<h:panelGroup id="othermodel">
<h:outputText value="Others:" style="margin-top:10px;color:red;font-weight:bold;"
rendered="#{bean.carList.contains('other')}" />
<h:inputText size="50" id="otherinput" required="true"
rendered="#{bean.carList.contains('other')}"/>
<h:message for="otherinput"></h:message>
</h:panelGroup>
<h:commandButton value="Next" action="#{bean.submitForm}"/>
</h:form>
私のビーンはrequestScoped
、carList
値がある場合other
は表示できpanelGrid
ますが、ユーザーが を使用してレンダリングされた入力フィールドに値を入力しない場合、AJAX
指定してもrequired=true
検証されません。また、入力テキスト ボックスの値はバックエンド コードで null です。
を使用してレンダリングされた入力フィールドの検証を行うにはどうすればよいAJAX
ですか? また、値が null になるのはなぜですか? 私はJSF 2.0を使用しています