`
dontsan
  • 浏览: 39912 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

JSF 的 SelectOneMenu 等控件的绑定问题

阅读更多
		<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 错误。 原来以为是a4j的问题,后来改用valuechangelistener来动态更新selectonemenu的selectitems.故障依旧。

今天在想为什么动态设定selectitems才会有问题呢?在页面第一次显示时将所有items全部加入selectitems,再试,OK!

原来动态更新selectitems并没有更新selectonemenu,导致JSF在selectonemenu查找不到相应的值。

下一步打算将selectonemenu绑定到backingbean,彻底解决这个问题。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics