【问题标题】:Multiple events in the same p:ajax in PrimeFacesPrimeFaces 中同一个 p:ajax 中的多个事件
【发布时间】:2016-02-03 11:56:02
【问题描述】:

是否可以在同一个 p:ajax 中有多个事件?

类似这样的:

<p:ajax event="firstEvent,secondEvent..." listener="doSomething();" />

【问题讨论】:

  • 三个字母...T R Y...(和'doSomething();' 永远不会起作用。如果您创建伪代码,至少做得更好一点;-))
  • 嘿,谢谢,但这里的重点是显示事件定义的定义或我的意思。当然,尝试过的人发现它不起作用。问题是关于在这个伪代码中是否存在某种形式的命名。对不起,如果我不够清楚。
  • 好吧,如果它不起作用并且您没有找到任何有关此的文档,那么您唯一能做的就是尝试使用不同的普通 jsf 示例。如果它在那里也不起作用,那可能是它不受支持。 jsf 的规范是开放的
  • 我知道我迟到了,但似乎不可能:forum.primefaces.org/viewtopic.php?p=8902#p8902

标签: jsf primefaces


【解决方案1】:

我知道是以后了,但是我找到了这样做的方法,你只需要放N个p:ajax标签,即:

<p:calendar id="startDate" value="#{bean.date}"
    pattern="dd.MM.yyyy"
    validator="#{bean.checkDate}">
    <p:ajax update="dialog:endDate" event="dateSelect"  /> 
    <p:ajax update="dialog:endDate" event="keyup"  /> 
</p:calendar>

【讨论】:

  • 问题:“PrimeFaces 中同一个 p:ajax 中的多个事件”。你的回答是正常的方式,是的,肯定会奏效。问题是只使用一个p:ajax 标签以完全不同的方式进行操作
  • 这是一个有用的答案。
  • 我只是想要确认 - 这对我有帮助。你知道,用空格、冒号、逗号分隔……只是必须确定这是不可能的。
【解决方案2】:

面临同样的问题并遇到了这篇文章。经过琐碎的调查,“同一个 p:ajax 中的多个事件”方法将不起作用。至少经过测试的 Primefaces 5.3 版本不支持它。 会出现这样的异常:

javax.faces.view.facelets.TagException: <p:ajax> Event:firstEvent,secondEvent is not supported.

AbstractBehaviorHandler 类的一些源代码:

 ClientBehaviorHolder holder = (ClientBehaviorHolder) parent;

    String eventName = getEventName();

    if (null == eventName) {
        eventName = holder.getDefaultEventName();
        if (null == eventName) {
            throw new TagException(this.tag, "Event attribute could not be determined: "  + eventName);
        }
    } else {
        Collection<String> eventNames = holder.getEventNames();
        if (!eventNames.contains(eventName)) {
            throw new TagException(this.tag,  "Event:" + eventName + " is not supported.");
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 2016-11-24
    • 2013-01-05
    • 2018-03-03
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    相关资源
    最近更新 更多