gpt4 book ai didi

events - 我如何监听所有具有参数化名称的 Seam 上下文事件?

转载 作者:行者123 更新时间:2023-12-02 05:07:25 25 4
gpt4 key购买 nike

Seam 将触发 different kinds of events与特定范围、任务或流程相关,并将范围、任务或流程的名称附加到事件末尾。

如何监听某个类型的所有事件?

例如对于任何 <name>我想听听诸如此类的事件:

  • org.jboss.seam.createProcess.<name> - 创建进程时调用
  • org.jboss.seam.endProcess.<name> - 进程结束时调用
  • org.jboss.seam.initProcess.<name> - 当进程与对话关联时调用
  • org.jboss.seam.startTask.<name> - 任务开始时调用
  • org.jboss.seam.endTask.<name> - 任务结束时调用

我需要这样做尽管事先不知道有效名称列表...:-(

我希望使用 @Observer 来创建观察者或类似的东西,并且我将在同一组件中监听最多两个事件类。

最佳答案

您可以通过用您自己的实现替换 Seam 的 Events 类来轻松地做到这一点。然后查找以特定字符串开头引发的事件:

@Scope(ScopeType.STATELESS)
@BypassInterceptors
@Name("org.jboss.seam.core.events")
@Install(precedence=APPLICATION)
public class Events extends org.jboss.seam.core.Events
{
@Override
public void raiseEvent(String type, Object... parameters )
{
super.raiseEvent( type, parameters );

if ( type.startsWith( "org.jboss.seam.createProcess" ) )
{
super.raiseEvent( "org.jboss.seam.createProcess", parameters );
}
//etc.
}
}

您现在可以观察“org.jboss.seam.createProcess”来获取所有createProcess 事件。

关于events - 我如何监听所有具有参数化名称的 Seam 上下文事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/553157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com