【问题标题】:oncomplete attribute of h:commandLink not invokedh:commandLink 的 oncomplete 属性未调用
【发布时间】:2015-09-24 19:48:08
【问题描述】:

我们正在从 JSF 1.2 迁移到 JSF 2.2.6 以及 RichFaces 4.5.2。面临oncomplete 未被调用的问题。 onclick 期间的 JS 函数被调用,但 oncomplete 中的 JS 没有被调用。这是如何引起的,我该如何解决?

<h:commandLink ... onclick="ed();" oncomplete="cEd(#{rowIndex});">

【问题讨论】:

  • 我们在使用 h:commandlink 时遇到了这个问题。 actionlistener 在 java 中被调用。但是 oncomplete 没有被触发。是否有正确的方法将 oncomplete 与 h:commandlink 一起使用?
  • 我们现在使用的代码:

标签: jsf jsf-2 commandlink


【解决方案1】:

There is indeed no such attribute&lt;h:commandLink&gt;。您很可能会混淆 &lt;a4j:commandLink&gt; 哪个 does have that attribute

你基本上有两个选择:

  1. 只需将&lt;h:commandLink&gt; 替换为&lt;a4j:commandLink&gt;

    <a4j:commandLink ... oncomplete="oncompleteFunction()" />
    
  2. &lt;h:commandLink&gt; 中嵌套一个带有事件处理程序的&lt;f:ajax&gt;

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

未来提示:只需阅读标签文档即可。链接在第 1 段。

【讨论】:

  • 我们实际上也尝试过使用 f:ajax 和 a4j:commandlink。它第一次运行良好。当我们第二次这样做时,我们遇到了链接本身无法正常工作的独特问题。只有当我们使用 a4j:commandlink 或 f:ajax 时才第二次调用 actionlistener
  • 这是一个与当前问题无关的不同问题。这个问题很久以前就已经被问及并得到了回答。
  • 好的..同意。你能在这里分享你的意见还是我应该作为一个新问题发布?我们确实尝试过搜索,并且可以找到仅讨论首次点击无效问题的帖子。
  • 我的情况与上述情况相反。第一次点击只能正常工作。不是第二个和更进一步。希望我的查询是正确的。
  • 如果第一次点击之后没有更新表单就会发生这种情况。
猜你喜欢
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
  • 2016-10-03
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
相关资源
最近更新 更多