在h:selectOneMenu上选择默认值

时间:2016-12-26 20:46:20

标签: jsf javabeans selectonemenu

我是JSF的新手,我在使用h:selectOneMenu时遇到了一些问题 我有combo1 with country和combo2 with citys,我想在combo1更改时重新加载combo2并且总是让combo2保留默认值(--select--)。 我正在使用ajax事件重新加载值,并且工作正常,但我不能在每次更改时保留我想要的默认值。

<h:selectOneMenu id="country" value="#{bean.country}">
  <f:selectItem itemValue="" itemLabel="--Select--" />
  <f:selectItems value="#{bean.getCountrys()}" />
  <f:ajax event="change" listener="#{bean.getCitys}" render="city" execute="@this"></f:ajax>
</h:selectOneMenu>
<h:selectOneMenu id="city" value="#{bean.city}">
  <f:selectItem itemValue="" itemLabel="--Select--" />
  <f:selectItems value="#{bean.getCitys()}" />
</h:selectOneMenu>

编辑: 感谢您的回复,但它没有解决问题。让我举一个充分的例子来说明一点(我的英语很糟糕......)。问题是当第二个选择具有与第一个选择相同的值时,例如。 组合1标志: 1.Germany 2.Italy 3.Spain 4.France

Combo2颜色。 (选择德国) 黑色 2.红色。 3.黄色

我选择黑色!,然后我选择组合1意大利,因为意大利国旗上没有黑色,它回到 - 选择 - 但是,如果意大利国旗将有黑色,它重新加载其余的值但是选择了黑色,而不是返回 - 选择 - 现在更清楚了吗?

1 个答案:

答案 0 :(得分:0)

您就在那里,只需将itemValue="#{null}"noSelectionOption="true"属性添加到<f:selectItem>代码。

<h:selectOneMenu id="city" value="#{bean.city}">
    <f:selectItem itemValue="#{null}" itemLabel="--Select--" noSelectionOption="true"/>
    <f:selectItems value="#{bean.getCitys()}" />
</h:selectOneMenu>

最初得到答案here