3

它能做什么

我有一个使用 PrimeFaces 3.1.1 的 web 应用程序。该应用程序的目的是提供一种更用户友好的方式来遍历我们拥有的 XML 聚合器。它最初是用 SCALA 编写的,但现在我已经用 Java 实现了它。

问题是什么

当用户选择一堆 XML 文件时,有一个选项可以解析这些文件并以用户友好的方式显示它们的值。当我不过滤任何东西时,这很有效,但是一旦我过滤我的数据表,它就会开始以一种非常奇怪的方式表现。它挂在文件上,不会更新到当前选定的 XML 文件。

例如,在这里,您可以看到我已feed details为文件选择了 ,但我正在获取先前选择的文件的提要详细信息。

错误示例

以下是示例按钮的代码:

 <p:commandButton oncomplete="mungeBetResultDialog.show()"
                             update=":mungeBetResultForm" icon="ui-icon ui-icon-search"
                             title="view changes" rendered="#{searchBean.isFootballMungeResult(feed.xml)}"
                             style="height:20px;">

        <f:setPropertyActionListener value="#{feed}" target="#{searchBean.selectedFeed}"/>
        <f:setPropertyActionListener value="#{true}" target="#{searchBean.showFeedDetails}"/>
 </p:commandButton>

示例按钮存在于DataTable. DataTable 没有支持 bean。

我设法解决的问题

所以我注意到它特别是没有触发的动作监听器之一。这个:

<f:setPropertyActionListener value="#{feed}" target="#{searchBean.selectedFeed}"/>

我在这个调用的代码中添加了一个日志,在过滤后它适用于某些而不适用于另一些,而在它完美运行之前。

注意:仅当我在过滤提要后尝试查看提要的详细信息时才会出现此错误这告诉我前端存在某种问题,而不是后端代码存在问题。

我的问题

PrimeFaces 中是否有某种众所周知的错误会setPropertyActionListener在适当的时间禁用标签?我已经看到 bug 停止commandLinks了,但是那里建议的修复似乎对我不起作用。

4

1 回答 1

1

该错误似乎已在 3.4 中修复。你有机会升级到它吗?

哪些步骤将重现该问题?

  1. 使用过滤器和 commandLink 或任何其他 ActionSource 组件设置数据表作为行内容
  2. 过滤数据表
  3. 单击数据表的过滤行的链接

卡加泰

所以,我尝试了评论 3 中的示例,用 3.1(捆绑在示例中)、3.2 和 3.3 复制了问题。

但不是 3.4-SNAPSHOT,功能按预期工作。

原因大概是3.4的维护工作;

http://code.google.com/p/primefaces/issues/detail?id=4270

所以我可以确认有一个错误,但似乎在 3.4 中已修复,如果您在注释 #3 的示例中将 PF 版本设置为 3.4-SNAPSHOT,它应该可以工作。标记为固定。

于 2013-10-04T17:31:40.903 回答