2017-02-13 8 views
0

Я получаю ниже ошибки при запуске моей страницы входа в систему jsf. Я думаю, что моя valider() функции в моем управляемом Bean является проблемой, но я не нашел на путиvalue = "# {loginClientBean.login}": Target Unreachable, идентификатор 'loginClientBean' разрешен к нулю

функции Authenticate в моей 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; 

} 

Управляемый боб:

@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 Страница:

<!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> 

ответ

0

Удалить() из метода действий

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

Дайте имя для управляемого компонента (обратите внимание, он должен работать без указания имени и)

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

Если вы используете JSF 2.2 заменить JDK с 1.7 и выше .Finally дать правильную сборку перед развертыванием

также заглянуть в Бале гр решения https://stackoverflow.com/a/30128396/4036926

+0

Ничего это все решает описанную проблему. Если круглые скобки не поддерживались, было бы выбрано совершенно другое исключение. Повторение точно имени по умолчанию также не имеет смысла. Поэтому очень удивительно, почему этот нерабочий ответ поддерживается. – BalusC

+0

ничего из этого не сделал, мой друг мой jdk уже 1.7, и я добавил имя, но он не работал – javaManiac

Смежные вопросы