h:commandLink / h:commandButton 的 oncomplete 属性未调用

问题描述 投票:0回答:1

我们正在从 JSF 1.2 迁移到 JSF 2.2.6 以及 RichFaces 4.5.2。面临

oncomplete
未接到电话的问题。
onclick
期间的JS函数被调用,但
oncomplete
期间的JS没有被调用。这是怎么造成的以及如何解决?

<h:commandLink ... onclick="ed();" oncomplete="cEd(#{rowIndex});">
jsf commandbutton commandlink
1个回答
8
投票

标准 JSF 中确实没有这样的属性

<h:commandLink>
。您很可能对 RichFaces
<a4j:commandLink>
感到困惑,其中 确实具有该属性,甚至 PrimeFaces
<p:commandLink>
也具有该属性
<xxx:commandButton>
兄弟也是如此。

你基本上有 2 个选择:

  1. 只需将

    <h:commandLink>
    替换为
    <a4j:commandLink>
    <p:commandLink>

     <a4j:commandLink ... oncomplete="oncompleteFunction()" />
    
     <p:commandLink ... oncomplete="oncompleteFunction()" />
    
  2. <f:ajax>
    与事件处理程序嵌套在
    <h:commandLink>
    中。

     <h:commandLink ...>
         <f:ajax onevent="oneventFunction" /><!-- No parenthesis! -->
     </h:commandLink>
    
     function oneventFunction(data) {
         if (data.status === "success") {
             oncompleteFunction();
         }
     }
    

总结:只需阅读标签文档即可。链接位于上面第一段。

© www.soinside.com 2019 - 2024. All rights reserved.