【问题标题】:@all in JSF Ajax does not workJSF Ajax 中的 @all 不起作用
【发布时间】:2012-02-03 09:26:24
【问题描述】:

这一行在表单标签内:

<p:commandLink actionListener="#{questionBean.removeQuestion(question)}"
   value="Delete" styleClass="delete" update="@all"/>

但是,它仅适用于 @form。当我有@all 时,什么也没有发生。我希望不仅能更新表单,还能更新页面的其他部分。

【问题讨论】:

    标签: java jsf jakarta-ee primefaces


    【解决方案1】:

    似乎primefaces不支持update="@all"

    虽然问题有点不同update="@all" is not working with "ui:include ..."

    但它仍然被多次提及

    update="@all" 不适用于 PimeFaces。

    另一个参考:Issue 2026: update="@all" is not working PrimeFaces ajax.

    【讨论】:

      【解决方案2】:

      按照here 的说明尝试使用process="@all"

      <p:commandLink actionListener="#{questionBean.removeQuestion(question)}" 
         value="Delete" styleClass="delete" process="@all"/> 
      

      【讨论】:

      • &lt;p:commandButton&gt;process 属性类似于&lt;f:ajax&gt;execute 属性。它仅用于说明应提交哪些变量。
      【解决方案3】:

      我认为这可能是一个错误。即使你使用 JSF 的&lt;f:ajax render="@all"&gt;,它也可能不起作用。为了解决这个问题,我认为您可以简单地将body 标记的id 属性设置为,例如mySexyBody。然后你可以做update="mySexyBody"

      【讨论】:

      • 如果我这样做,那么我必须手动刷新页面才能看到任何更改。
      • 如果你有update="mySexyBody",你会像往常一样在Ajax调用结束时得到更新。
      • 不,我试过了。除非您手动刷新浏览器,否则它不会更新
      • 哇,你太有礼貌了。我不知道为什么会这样。不过,您可以使用 &lt;h:panelGroup&gt; 包装所有内容并更新它:P。这肯定会奏效。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2012-07-28
      • 2014-01-17
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多