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,彻底解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值