gpt4 book ai didi

jsf - 'official' SEAM 监听 JSF-SEAM 阶段的方式是什么?

转载 作者:行者123 更新时间:2023-12-04 16:18:53 27 4
gpt4 key购买 nike

关于标题的一个简单问题。

我的情况是我想听“在 RENDER_RESPONSE 之前”阶段,并改变一些组件的内部状态。

PhaseListener 是在 SEAM 应用程序中执行此操作的“正确方法”吗?

最佳答案

如果你想改变 JSF 组件的内部状态,依赖于 JSF phase listener。下面显示了声明 JSF 阶段监听器的 Seam 方式

@Name("applicationPhaseListener")
@Scope(ScopeType.APPLICATION)
public class ApplicationPhaseListener {

/**
* Called TRANSPARENTLY by Seam
*/
@Observer("org.jboss.seam.beforePhase")
public void beforePhase(PhaseEvent event) {


}

/**
* Called TRANSPARENTLY by Seam
*/
@Observer("org.jboss.seam.afterPhase")
public void afterPhase(PhaseEvent event) {

}



}

但是如果你想改变Seam上下文组件状态,使用

@Name("applicationPhaseListener")
public class ApplicationPhaseListener {

@Observer("applicationListener")
public void applicationListener() {

}

}

你可以

以编程方式调用您的事件

Events.instance().raiseEvent("applicationListener");

通过使用位于某些操作方法之上的@RaiseEvent 注释

@RaiseEvent("applicationListener")
public void doSomething() {

}

pages.xml

<page id="<PAGE_ID_GOES_HERE>">
<raise-event type="applicationListener"/>
</page>

关于jsf - 'official' SEAM 监听 JSF-SEAM 阶段的方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3809225/

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