ui:repeat 中的 bootsfaces b:commandButton 未更新 h:graphicImage

bootsfaces b:commandButton in ui:repeat not updating h:graphicImage

我正在使用 0.7 版的 bootsfaces 创建一个简单的页面,其中包含如下内容:

<h:form id="some_form">
  <ui:repeat id="some_elements" var="property" value="#{someBean.properties}">
    <b:commandButton value="ShowProp" ajax="true" actionListener="#{someBean.showProperty(property)}" update=":some_form:some_elements:graphic"/>
    <!-- This property is true -->
    <ui:fragment rendered="#{someOtherBean.showGraphic}">
      <h:graphicImage url="gen_image?id=#{property.id}" id="graphic"/>
    </ui:fragment>
  </ui:repeat>
</h:form>

现在,想法是在单击按钮时更新 属性 并且应该重新生成图像(在本例中为 jfreechart 图 - 但这不是重点。)我测试过这与 primefaces commandButton 并且它工作正常(图形被重新绘制..)但是对于 bootsfaces commandButton,一旦 ajax 调用完成就没有任何反应(我可以在服务器端看到调用,但图形没有重新加载。 ) 我认为这取决于它必须如何引用重复块中的图像,但现在确定出了什么问题 - 有人遇到过这个吗?

(注意:我不想使用 primefaces 的原因是它不能很好地与 bootstrap 集成)

我在项目的错误追踪器 (https://github.com/TheCoder4eu/BootsFaces-OSP/issues/135) 上打开了一个错误。

实际上,您为什么期望 update=":some_form:some_elements:graphic" 首先起作用?此表达式是一个不存在的 ID。 id 是 some_form:some_elements:0:graphic。换句话说:它包含行号。 PrimeFaces(以及 Mojarra 和 MyFaces)识别命令按钮是 UIRepeat 组的一部分并猜测正确的行号。但这只是一个猜测。显然这是一个合理的猜测,因为大多数时候你想更新命令按钮附近的东西。

BootsFaces 的下一版本也将猜测正确的行号:)。