Java扩展和覆盖方法

时间:2014-09-30 11:32:38

标签: jsf

我需要一些帮助:

我使用bean以简单的方法注销页面

public class MyBean extends LoginBean{
...
    public String doLogout () throws Exception
    {
...
    ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).logout();
    FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
    return null;
    }
}

bean的LoginBean是扩展的,我在MyBean中覆盖了方法doLogout(基本上它们都是相同的代码)。 但是当打电话给下面的按钮时

<p:commandButton action="#{myBean.doLogout()}" ajax="false" />

调试转到LoginBean.doLogout()...

为什么呢?

谢谢你的帮助,伙计们。

1 个答案:

答案 0 :(得分:0)

好吧,我解决了创建课程MyPhaseListener扩展PhaseListener并覆盖某些阶段的问题,但我不知道为什么我需要制作这个......

public class MyPhaseListener implements PhaseListener{

    @Override
    public void afterPhase (PhaseEvent event)
    {
     ...
    }
    @Override
    public void beforePhase (PhaseEvent event)
    {
     ...
    }

}

如果有人解释为什么这是必要的,我将不胜感激。