我有一个下拉列表,默认它有“选择一个”,其他值和标签被收集并从后端bean填充。代码如下。
<h:selectOneMenu id="PID" value="#{Controller.PageBean.selectedId}" requiredMessage="Product is required" required="true" onchange="onChangeProduct();">
<f:selectItem itemLabel="choose one" itemValue="" />
<f:selectItems value="#{Controller.PageBean.productList}" var="pro" itemLabel="#{pro.name}" itemValue="#{pro.id}" />
<f:ajax event="change" listener="#{Controller.updateSelectedProduct(Controller.PageBean.selectedId)}" render="productno productName"/>
<f:validator validatorId="productValidator"/>
</h:selectOneMenu>
当我们更改下拉菜单而不是“选择一个”时,调用ajax函数并根据所选下拉列表更改后端bean值,当我选择“选择一个”时,所有值都应该无效但我无法在此处访问控制器点或者ajax函数没有被调用请求帮助。
答案 0 :(得分:0)
请参阅此帖:Default value of h:selectOneMenu not invoked in valueChangedListener。
虽然用户从另一条路线出发,但得出的结论与您的关注点是一样的! ;)(@BalusC提供的链接超出了他的答案,这解释了很好的事情)