2014-09-30 172 views
-1

我需要一些幫助,這:的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()...

爲什麼?

感謝您的幫助,夥計們。

+0

我想你應該把@Override放在方法上,以確保它是重寫。如果是這樣,我想說你應該多幫一些 – 2014-09-30 17:42:12

+0

@ JaqenH'ghar謝謝你的幫助,我在提出這個問題之前嘗試這個,但這不是重點。 – WyllianNeo 2014-10-01 11:22:34

回答

0

嗯,我解決創建類MyPhaseListener擴展PhaseListener,並覆蓋某些階段的問題,但我不知道爲什麼我需要讓這個...

public class MyPhaseListener implements PhaseListener{ 

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

} 

如果有人解釋爲什麼這是必要的,我會很感激。