2014-06-24 77 views
0

您好,我想開發一個登錄頁面使用oracle jdeveloper 12c和。我正在與Java EE技術和JSF頁面。 我想在驗證用戶是否存在於數據庫中後,從登錄按鈕中重定向頁面如果發現用戶,它將重定向到MainPage.Jsf,否則重定向到Login.jsf在兩種情況下,都會將問題重定向到Login.jsf。 PS:我沒有在faces-config或將ADFC-config如果將此任何改變是我的驗證功能如何重定向從按鈕的jsf頁面

public String authentification(String login, String pwd) { 

    try{ 
     Query query; 
     query = em.createQuery("select o from UserEntity o where " + " o.login = :LOGIN AND o.pwd = :PWD"); 

     query.setParameter("LOGIN",login); 
     query.setParameter("PWD",pwd); 


       query.getSingleResult(); 


     return ("success") ; 


    } 
    catch(Exception e){ 
      e.printStackTrace(); 
      return null; 
    } 

} 

我敢肯定的是,authenification功能正常工作

這是我Dologin ()在managedBean

public String DoLogin() { 
    BindingContainer bindings = getBindings(); 
    OperationBinding operationBinding = bindings.getOperationBinding("authentification"); 
    Object result = operationBinding.execute(); 
    System.out.println("## Result = " + result); 
    if (!operationBinding.getErrors().isEmpty()) { 
     return "/faces/MainPage.jsf?faces-redirect=true"; 
    } 
    return "/faces/Login.jsf?faces-redirect=true"; 

} 

的日誌不顯示我任何exeption或錯誤

+1

你設置在web.xml中servlet的映射參數(如果你的答案是,如何做到這一點) –

+0

不,我沒有做到這一點:?/ – user3419507

+0

顯然,檢查operationBinding! getErrors()。isEmpty()返回false(意味着沒有錯誤)。另外,您正在處理從身份驗證方法生成的所有異常,並且如果您在日誌中沒有看到任何內容,則表示不會引發異常。認證方法的實現看起來不正確。 – Endrik

回答

0

嘗試這種合作德

ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext(); 
HttpServletResponse response = (HttpServletResponse)ectx.getResponse(); 

response.sendRedirect("../faces/login.jspx");