JSFのSelectOneMenuなどのコントロールのバインドの問題

1901 ワード


		<h:form id="forma">
			<h:outputText value="Please select a country:" />
			<h:selectOneRadio value="#{Regions.country}" valueChangeListener="#{Regions.updateCountry}" immediate="false" onclick="submit()">
				<f:selectItem itemLabel="USA" itemValue="USA" />
				<f:selectItem itemLabel="CANADA" itemValue="CANADA" />
<!--				<a:support event="onchange" reRender="regionPanel" />-->
			</h:selectOneRadio>
		</h:form>

		<h:form id="formb">
			<a:outputPanel id="regionPanel">
				<s:decorate id="regionDecoration" template="layout/display.xhtml">
					<ui:define name="label">Select a region:</ui:define>
					<h:selectOneMenu id="selectRegion" value="#{dealerList.region}"	>
<!--						<rich:comboBox id="selectRegion" value="#{dealerList.region}"-->
<!--							converter="SelectItemConverter">-->
							<f:selectItems value="#{Regions.regionItems}" />
<!--						</rich:comboBox>-->
					</h:selectOneMenu>

				</s:decorate>
			</a:outputPanel>


上のコードはselectoneradioをクリックすることによってselectonemenuがアメリカ州またはカナダ省を表示することを決定します.正常に表示されますが、selectonemenuの値がbacking beanに届かず、value is not validエラーが発生しました.a 4 jの問題かと思いきやvaluechangelistenerでselectonemenuのselectitemsを動的に更新する.故障は相変わらずです.
今日はなぜselectitemsを動的に設定するのが問題なのか考えています.ページの最初の表示時にすべてのitemsをselectitemsに追加して、もう一度試して、OK!
従来、動的更新selectitemsはselectonemenuを更新していなかったため、JSFはselectonemenuで対応する値が見つからなかった.
次はselectonemenuをbackingbeanにバインドし、この問題を徹底的に解決するつもりです.