的Java扩展和覆盖方法
问题描述:
我需要一些帮助,这:的Java扩展和覆盖方法
我使用一个bean注销页面用一个简单的方法
public class MyBean extends LoginBean{
...
public String doLogout() throws Exception
{
...
((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).logout();
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
return null;
}
}
凡豆LoginBean是扩展和我重写方法在MyBean doLogout(他们基本上是相同的代码)。 但当拨打以下
<p:commandButton action="#{myBean.doLogout()}" ajax="false" />
调试按钮进入LoginBean.doLogout()...
为什么?
感谢您的帮助,伙计们。
答
嗯,我解决创建类MyPhaseListener
扩展PhaseListener
,并覆盖某些阶段的问题,但我不知道为什么我需要让这个...
public class MyPhaseListener implements PhaseListener{
@Override
public void afterPhase (PhaseEvent event)
{
...
}
@Override
public void beforePhase (PhaseEvent event)
{
...
}
}
如果有人解释为什么这是必要的,我会很感激。
我想你应该把@Override放在方法上,以确保它是重写。如果是这样,我想说你应该多帮一些 – 2014-09-30 17:42:12
@ JaqenH'ghar谢谢你的帮助,我在提出这个问题之前尝试这个,但这不是重点。 – WyllianNeo 2014-10-01 11:22:34