【问题标题】:JSF selectItem not calling associated ajax listenerJSF selectItem 未调用关联的 ajax 侦听器
【发布时间】:2013-12-27 06:59:02
【问题描述】:

我有一个下拉菜单,其中默认为“选择一个”,其他值和标签是从后端 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函数没有被调用请帮忙。

【问题讨论】:

  • 您是否尝试在“itemValue”中为“选择一个”添加一些值?如果你想得到空值来选择一个,下面是代码:
  • 我试过了,还是不行。
  • 如果Controller.PageBean 中的属性selectedIdint,那么#{null} 不会这样做,而是使用一个值,这意味着没有选择像0-1 这样的值并将其设置为 itemValue 而不是空值。

标签: ajax jsf


【解决方案1】:

看到这个帖子:Default value of h:selectOneMenu not invoked in valueChangedListener.
尽管用户从另一条路线走,得出的结论与您同样关心! ;)(@BalusC 在他的回答之外还提供了一个链接,很好地解释了事情)

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 2014-01-28
    • 2012-06-07
    • 2017-09-24
    • 1970-01-01
    • 2013-02-05
    • 2021-04-24
    • 2012-04-30
    相关资源
    最近更新 更多