我已经管理过我用来处理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事件?
答案 0 :(得分:1)
如果您在beforeRenderResponse中打开代码窗口,您将看到没有dropDown列表来选择EL。
如果没有可能将它添加到RenderResponse之前,那么强制使用EL是没有用的。 有关这方面的更多详细信息,您必须深入了解JSF生命周期。
有关此主题的好书是MasteringXpages或者请查看XPageMasterclass和Peter Presnell。