【问题标题】:bootsfaces b:commandButton in ui:repeat not updating h:graphicImagebootsfaces b:ui中的commandButton:重复不更新h:graphicImage
【发布时间】:2015-07-17 19:25:48
【问题描述】:

我正在使用 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 的原因是它不能很好地与引导程序集成)

【问题讨论】:

  • OT(不完全) 集成不好在哪方面?响应能力?否则它将是控件,然后根本没有理由使用 PrimeFaces。 ajax 响应是怎样的?你是否在开发模式下运行?
  • 我在 primefaces 中使用了一些更高级的功能(例如 push),但是控件本身不适合我正在使用的引导模板(即 laf),bootsfaces控件适合 laf,但显然缺少某些功能...
  • 我真的很喜欢你的笔记。我确实有同样的问题。您可能希望将纯 JSF 与 &lt;f:ajax&gt; 一起使用。它确实有效。

标签: jsf bootsfaces


【解决方案1】:

我在项目的 bugtracker (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 的下一个版本也将猜测正确的行号:)。

【讨论】:

  • 谢谢!我知道完整路径会有行号(我检查了 primefaces 等生成的代码)我只是假设 bootsfaces 会在这里做正确的事情.. :) 通常当它不工作时,它 me 谁在做一些脑残...
  • 同时,我们已经修复了即将发布的 BootsFaces 0.8.0 版本中的错误。
猜你喜欢
  • 1970-01-01
  • 2016-09-28
  • 2016-01-16
  • 1970-01-01
  • 2018-06-02
  • 2015-03-26
  • 1970-01-01
  • 2015-03-29
  • 2015-08-28
相关资源
最近更新 更多