当前位置: 首页 > 面试题库 >

嵌套ui:repeat中未调用jsf侦听器

林冥夜
2023-03-14
问题内容

ui:repeat在互相嵌套时想调用侦听器时遇到问题。我也尝试过c:forEach,但是遇到了同样的问题。

为了演示问题,我将代码简化为问题。有两个按钮,第一个位于第一个ui:repeat内部,将成功的调用为简单的侦听器。第二个按钮位于嵌套的ui:repeat元素内部,应调用与第一个按钮相同的侦听器,但永远不会调用该侦听器。

你能告诉我这怎么了吗?

<div>
    <ui:repeat var="testList" value="#{testBean.testList}">
        <h:commandButton value="test1">
            // the listener is called if I click this button
            <f:ajax event="click" execute="@this" listener="#{testBean.testListener}" />
        </h:commandButton>
        <ui:repeat var="nestedList" value="#{testList.nestedList}">
            <h:commandButton value="test2">
                // the listener will not be called if I click this button
                <f:ajax event="click" execute="@this" listener="#{testBean.testListener}" />
            </h:commandButton>
        </ui:repeat>
    </ui:repeat>
</div>

问题答案:

这是一个已知的Mojarra问题,涉及到的中断状态管理<ui:repeat>。特别是,此问题报告为问题1817,自Mojarra
2.1.15起已修复。

升级您的Mojarra版本。这是目前已经在2.1.19。



 类似资料:
  • 问题内容: 对于大型项目,有人告诉我,当您拥有扩展JPanels的类时,最佳实践是使用嵌套类来实现侦听器。例如,我可以拥有扩展JPanel的FactoryScreen类,并具有实现所有必要侦听器的嵌套类FactoryScreenBrain。 对于以这种方式封装我的类的特定优点或缺点,我一直无法得到很好的解释,并且直到现在,我始终只有可以扩展JPanel和实现侦听器的类。有人可以为此提供一些指导吗?

  • 问题内容: 我正在尝试通过JSF中的递归构建导航树。我将组件定义为: 我的树声明为: 我通过以下方式调用组件: 问题是,这导致。 在JSF中有一些关于构建递归的参考(例如,Facelets中的c:forEach与ui:repeat)。常见问题似乎是将构建时组件和渲染时组件/标签混合在一起。就我而言: 我的复合组件实际上是一个标记,在构建树时执行 ui:repeat是实际的JSF组件,在呈现树时会对

  • 我有一个自定义跳过管理步骤。我定义了一个跳过策略,其源代码如下: 我的Skip侦听器如下: 我的步骤定义如下: 我想跳过一个约束冲突异常。但是,不会调用侦听器或跳过策略。

  • 问题内容: 我试图在我的Seam / Hibernate / JPA应用程序中利用EntityListener对象和回调方法。我在后端使用PostgreSQL 9.1的JBoss 5.1上使用Seam 2.2管理的持久性上下文。我声明了以下实体: 以及以下EntityListener回调类: 但是,当我运行测试时,我没有看到我期望的所有回调方法都被调用。我已经对以下情况进行了测试: 坚持一个新项目

  • 问题内容: 我很好奇这两种执行ajax调用的方式有什么区别: 和 看来人们使用第一种方法的频率更高,但是第二种方法似乎也能正常工作… 问题答案: 第一种方法允许通过返回结果进行导航,而第二种则不能。如果客户端禁用了JS,第二种方法将不会调用任何内容,而第一种方法会正常降级。确实,第一种方法被更频繁地使用。 第二种方法是组件中没有属性的唯一方法,例如等等。

  • 我有一个JPanel,我的(游戏)程序在其中绘制了一些由一段代码决定的东西。到目前为止,一切都很好。我写了一个非常基本的侦听器,它侦听程序背景模型的变化,然后应该告诉GUI更新,即移动游戏外观。 所有这些都发生在mouseListener触发的方法中。 我猜这就是问题所在,因为在JPanel中再次单击鼠标会正确更新JPanel,我可以看到模型移动的部分。 JPanel的代码: 更新调用了很多AWT