如何通过托管bean运行beforerenderresponse事件

时间:2013-05-16 14:46:08

标签: jsf xpages lotus-domino

我已经管理过我用来处理XPage上的事件

使用EL运行bean时,beforePageLoad事件运行正常:

<xp:this.beforePageLoad><![CDATA[#{pageController.beforePageLoad}]]></xp:this.beforePageLoad>

但是如果我尝试使用beforeRenderResponse,它就不会运行:

<xp:this.beforeRenderResponse><![CDATA[#{pageController.beforeRenderResponse}]]></xp:this.beforeRenderResponse>

如果通过SSJS运行beforeRenderResponse事件,它运行正常:

<xp:this.beforeRenderResponse><![CDATA[#{javascript:pageController.beforeRenderResponse();}]]></xp:this.beforeRenderResponse>

爪哇

public class Controller{
    private static final long serialVersionUID = -7116804417284920609L;

    public void beforePageLoad() throws Exception {
        Logger.getInstance().logEvent("Controller.beforeRenderResponse", Logger.LOG_LEVEL_DEBUG);
    }
    public void afterPageLoad() throws Exception {
        Logger.getInstance().logEvent("Controller.beforeRenderResponse", Logger.LOG_LEVEL_DEBUG);
    }

    public boolean beforeRenderResponse() throws Exception {
        Logger.getInstance().logEvent("Controller.beforeRenderResponse", Logger.LOG_LEVEL_DEBUG);
    }
    public void afterRenderResponse() throws Exception {
        Logger.getInstance().logEvent("Controller.beforeRenderResponse", Logger.LOG_LEVEL_DEBUG);
    }

    public void afterRestoreView() throws Exception {
        Logger.getInstance().logEvent("Controller.beforeRenderResponse", Logger.LOG_LEVEL_DEBUG);
    }
}

请问有人可以告诉我如何使用EL运行beforeRenderResponse事件?

1 个答案:

答案 0 :(得分:1)

如果您在beforeRenderResponse中打开代码窗口,您将看到没有dropDown列表来选择EL。

如果没有可能将它添加到RenderResponse之前,那么强制使用EL是没有用的。 有关这方面的更多详细信息,您必须深入了解JSF生命周期。

有关此主题的好书是MasteringXpages或者请查看XPageMasterclassPeter Presnell