【问题标题】:What is the 'official' SEAM way of listening to JSF-SEAM phases?聆听 JSF-SEAM 阶段的“官方”SEAM 方式是什么?
【发布时间】:2010-09-28 02:12:04
【问题描述】:

关于标题的简单问题。

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

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

【问题讨论】:

    标签: jsf seam listener


    【解决方案1】:

    如果你想改变 JSF 组件的内部状态,依赖 JSF 阶段监听器。下面显示了声明 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 contextual组件状态,使用

    @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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 2011-08-28
      相关资源
      最近更新 更多