2012-10-02 28 views
0

我參與JSF登錄應用程序。這裏有兩種方法調用doLogin(),其中包括登錄邏輯和doFilter()裏面的LoginBean類。在index.xhtml有一個叫做login的命令按鈕,在這裏我使用了它。 action="#{loginBean.doLogin}",所以我可以撥打doLogin()。我的問題是我怎樣才能撥打doFilter()如何在index.xthml中調用doFilter()

回答

1

假設你有一個這樣的託管bean:

@RequestScoped 
@ManagedBean 
public class Login { 

    public Login() { 
    } 

    public String doLogin() { 
    } 

    public void doFilter() { 
    } 
} 

如果您需要調用內部doLogindoFilter方法,只需添加調用,比如在基本編程:

public String doLogin() { 
    //some code here... 
    doFilter(); 
    //more code over here... 
} 

基礎的在你的最後一個問題中:Primefaces Login Application,你混淆了屬於Web Filter的doFilter方法和屬於一個託管bean方法:

  • doLogin將由FacesServlet的,當用戶激活,它調用此方法的事件被調用。例如,UI命令動作:

    <h:form> 
        <h:commandButton value="Click me!" action="#{loginBean.doLogin}" /> 
    </h:form> 
    
  • doFilter方法將由Web過濾器調用。請注意,過濾器將在(Faces)Servlet之前執行,當且僅當請求URL與Web Filter中聲明的URLPattern匹配時。這意味着:

    • 我們有URLPATTERN =「* .xhtml」
    • 每次我做出<whatever>.xhtml請求的過濾器,過濾器會被調用。
    • 當被調用時,它將執行doFilter方法(默認方法)。

更多信息:

補充說明一下:你真的要學習Java的Web開發的最佳實踐的基礎知識。

相關問題