XPages请求处理生命周期-软件包到哪里去了

XPages请求处理生命周期-软件包到哪里去了,xpages,Xpages,我正在尝试在XPages请求处理生命周期中运行代码 第三位代码是 但我不知道如何放入与定义的结构匹配的包中 Code 3: XSPPhaseListener java class (put in a package that matches defined structure) package com.ibm.xsp.util; import javax.faces.event.PhaseEvent; import javax.faces.event.PhaseId; /** * @au

我正在尝试在XPages请求处理生命周期中运行代码

第三位代码是

但我不知道如何放入与定义的结构匹配的包中

Code 3: XSPPhaseListener java class (put in a package that matches defined structure)

package com.ibm.xsp.util;

import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;

/**
 * @author Tony McGuckin, IBM
 */
public class XSPPhaseListener implements javax.faces.event.PhaseListener {

  private static final long serialVersionUID = 1L;

  public PhaseId getPhaseId() {
      return PhaseId.ANY_PHASE;
    }

    public void beforePhase(PhaseEvent event) {
      if(event.getPhaseId().equals(PhaseId.RESTORE_VIEW)){
          System.out.println(" ");
        System.out.println("Request:\tStarted...");
      }
      System.out.println(" ");
      System.out.println("Lifecycle:\tBefore Phase: " + event.getPhaseId());
    }

    public void afterPhase(PhaseEvent event) {
      System.out.println("Lifecycle:\tAfter Phase: " + event.getPhaseId());
      System.out.println(" ");
      if(event.getPhaseId().equals(PhaseId.RENDER_RESPONSE)){
        System.out.println("Request:\tCompleted.");
        System.out.println(" ");
      }
    }
}

我认为这只是讨论Java包的一种特殊方式——最好在您自己的包(“com.company”)中创建一个类,而不是在IBM的名称空间中创建一个类。复制他那里的包名不会有什么坏处,但这是一个很好的做法。然后,在将新的完整类名(“com.company.XSPPhaseListener”)添加到Faces配置时,请确保使用它。

另外,请参阅OpenNTF上的XPages OpenLog Logger项目,该项目在NSF版本中有一个PhaseListener。我用它来拦截和注销错误。