【问题标题】:Update of a conditionally rendered selectItem not working更新有条件渲染的 selectItem 不起作用
【发布时间】:2012-04-27 07:36:33
【问题描述】:

我想知道为什么更新表单不会更新有条件呈现的 selectItem。 commandButton(用于测试目的)按预期正确更新。

<h:form id="form">
    <h:selectOneMenu id="selectedGroupId" label="#{msgs.group_group}" value="#{groupBean.selectedGroupId}">
        <p:ajax event="change" listener="#{groupBean.selectGroupEvent}" update=":form"/>
        <f:selectItem rendered="#{empty groupBean.selectedGroupId}" itemLabel="#{msgs.global_select_select}" />
        <f:selectItems value="#{groupBean.availableGruppen}" />
   </h:selectOneMenu>
   <p:commandButton value="Test" actionListener="#{groupBean.test}" rendered="#{empty groupBean.selectedGroupId}"/> 
</h:form>

任何提示我在这里做错了什么?

谢谢
强尼

【问题讨论】:

    标签: jsf-2 primefaces


    【解决方案1】:

    f:selectItem 没有 rendered 属性。

    根据this answer,您可以使用&lt;c:if&gt; 作为包装器,或者在您的操作方法中修改f:selecItems 列表。

    【讨论】:

    • 嗨,马特,感谢您的回答。我正在使用 MyFaces 2.1.7,并且 UISelectItem 有一个渲染属性。 public class UISelectItem extends javax.faces.component.UIComponentBase { ... //BEGIN CODE COPIED FROM javax.faces.component._UISelectItem public void setRendered(boolean state) { super.setRendered(state); ... } 还是我又错了?强尼
    • 顺便说一句: 就像一个魅力(但我仍然想使用渲染属性,如果有的话)。非常感谢马特
    • 好的,我查看了 Mojarra api 文档。所以这在某种程度上有所不同。
    • 我还迫切需要一个类似 itemRendered 的属性,用于 f:selectItem。但似乎大多数专家都想在后备控制器中实现它,但我仍然认为它是一个非常有用的属性。我已经发布了一个链接听到。 stackoverflow.com/questions/17611620/…
    猜你喜欢
    • 1970-01-01
    • 2022-09-27
    • 2017-09-10
    • 2014-01-17
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    相关资源
    最近更新 更多