2017-02-13 4 views
0

Je reçois l'erreur ci-dessous lorsque j'exécute ma page de connexion jsf. Je pense que ma fonction valider() dans mon Bean géré est la question, mais je ne trouve pas le cheminvalue = "# {loginClientBean.login}": Cible inaccessible, identifiant 'loginClientBean' résolu à null

fonction Authentifier dans mon ejb:

@Override 
public Client authentificate(String login, String pwd) { 
    Client client=null; 
    Query query=entityManager.createQuery("select c from Client c where c.login=:l and c.pwd=:p"); 
    query.setParameter("l", login).setParameter("p",pwd); 

    try { 

    client=(Client) query.getSingleResult(); 
    } catch (Exception e) { 
     client=null; 
    } 
    return client; 

} 

managed bean:

@ManagedBean 
@SessionScoped 
public class LoginClientBean { 
    @EJB 
    GestionClientLocal local; 
    private String login; 
    private String pwd; 
    private boolean connected; 
    public static Client client; 
    public String getLogin() { 
     return login; 
    } 
    public void setLogin(String login) { 
     this.login = login; 
    } 
    public String getPwd() { 
     return pwd; 
    } 
    public void setPwd(String pwd) { 
     this.pwd = pwd; 
    } 

    String message=null; 

    public String getMessage() { 
     return message; 
    } 
    public void setMessage(String message) { 
     this.message = message; 
    } 
    public boolean isConnected() { 
     return connected; 
    } 
    public void setConnected(boolean connected) { 
     this.connected = connected; 
    } 


    public Client getClient() { 
     return client; 

    } 

    public String valider(){ 

     String nav =null; 
     client=local.authentificate(login, pwd); 

     if (client != null){ 
       nav="/pages/yes?faces-redirect=true"; 
      }else { 
       nav="/pages/no?faces-redirect=true"; 
      } 

     return nav; 
    } 

    public String deconnexion(){ 
      FacesContext.getCurrentInstance().getExternalContext().getSessionMap().clear(); 
    return "/pages/login?faces-redirect=true"; 

    } 
} 

JSF Page:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:f="http://xmlns.jcp.org/jsf/core" 
     xmlns:jsf="http://xmlns.jcp.org/jsf" 
     xmlns:h="http://xmlns.jcp.org/jsf/html" 
     xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> 

    <h:head> 
<title>Flate Signup And Login Form with Flat Responsive template :: w3layouts</title> 
<meta name="viewport" content="width=device-width, initial-scale=1"></meta> 
<h:outputStylesheet library="css" name="style.css"></h:outputStylesheet> 
<h:outputScript type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </h:outputScript> 

</h:head> 
<h:body> 

     <h:form> 
      <h:panelGrid columns="2"> 
       <h:outputText value="login" /> 
       <p:inputText value="#{loginClientBean.login}" /> 
       <h:outputText value="password" /> 
       <p:password value="#{loginClientBean.pwd}" /> 
       <p:commandButton value="login" action="#{loginClientBean.valider()}" ajax="false"/> 
      </h:panelGrid> 
     </h:form> 

</h:body> 

</html> 

Répondre

0

Supprimer() de la méthode d'action

<p:commandButton value="login" action="#{loginClientBean.valider}" ajax="false"/> 

Donnez le nom de votre bean géré (notez qu'il devrait fonctionner sans nom aussi préciser)

@ManagedBean(name="loginClientBean ") 
@SessionScoped 
public class LoginClientBean { 
    ..... 
    } 

Si vous utilisez JSF 2.2 remplacer jdk avec 1.7 et au-dessus donner .Enfin construire une bonne avant de déployer

ont également un coup d'oeil dans la solution Balu c https://stackoverflow.com/a/30128396/4036926

+0

Rien de tout cela résout le problème décrit. Si les parenthèses n'étaient pas supportées, une exception complètement différente serait levée. Répéter exactement le nom par défaut n'a aucun sens. Il est donc très surprenant que cette réponse non fonctionnelle soit mise à jour. – BalusC

+0

rien de tout cela n'a résolu mon ami mon jdk est déjà 1,7 et j'ai ajouté le nom, mais cela n'a pas fonctionné – javaManiac