1

我已经成功地处理了 XPage 上的事件

beforePageLoad 事件使用 EL 运行 bean 运行良好:

<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 事件吗?

4

1 回答 1

1

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

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

关于这个主题的一本好书是MasteringXpages或看看 XPageMasterclassPeter Presnell

于 2013-05-16T15:05:46.323 回答