2014-01-09 4 views
-1

Привет, у меня есть две страницы XHTML: 1-login.jsf 2-menu.jsf im пытается перейти со страницы 1 на страницу2, нажав на кнопку, но она не работает. мой код: login.jsfh: commandButton не перенаправляется на другую страницу jsf

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html"> 

<head> 
<link rel="stylesheet" type="text/css" href="../css/styles.css"/> 
</head> 

<h:body> 
<h:form id="LoginForm"> 
<h:panelGrid style= "width: 467px; height: 88px"> 

<h:outputLabel value="Login"/> 
<h:inputText value="#{loginBean.login}" id="loginID" /> 
<h:message for="loginID" tooltip="true" showDetail="true" showSummary="true" style="COLOR: #ff0000;"/> 

<h:outputLabel value="Mot de Passe"/> 
<h:inputSecret value="#{loginBean.password}" id="pwdID" /> 
<h:message for="pwdID" tooltip="true" showDetail="true" showSummary="true" style="COLOR: #ff0000;"/> 
<h:message /> 
</h:panelGrid> 

<h:commandButton id="validerID" value="Valider" action="#{loginBean.authentification}"  type="submit"/> 
<h:commandButton id="resetID" value="Reset" type="reset"/> 
</h:form> 
</h:body> 
</html> 

А вот код ManagedBean:

пакет com.fst.bibliotheque.beans;

импорт javax.faces.application.FacesMessage; import javax.faces.context.FacesContext;

общественного класса LoginBean {

private String login; 
private String password; 


public String getLogin() { 
    return login; 
} 
public void setLogin(String login) { 
    this.login = login; 
} 
public String getPassword() { 
    return password; 
} 
public void setPassword(String password) { 
    this.password = password; 
} 

public String authentification(){ 

    FacesContext fc=FacesContext.getCurrentInstance(); 
    if("admin".equals(this.login) && "admin".equals(password)){ 
     return "success"; 
    }else{ 
     if(!"admin".equals(this.login)){ 
      fc.addMessage("LoginForm:loginID",new FacesMessage(FacesMessage.SEVERITY_INFO,"Validation Login","Login "+this.login+" inexistant!!")); 
     } 
     if(!"admin".equals(this.password)){ 
      fc.addMessage("LoginForm:pwdID",new FacesMessage(FacesMessage.SEVERITY_INFO, "Validation Pwd","Vérifier votre mot de passe!!")); 
     } 
     return "echec"; 
    } 

} 

}

Наконец вот правила навигации в лицах-config.xml

 <navigation-rule> 
    <display-name>pages/login.xhtml</display-name> 
    <from-view-id>/pages/login.xhtml</from-view-id> 
    <navigation-case> 
     <from-action>#{LoginBean.authentification()}</from-action> 
     <from-outcome>success</from-outcome> 
     <to-view-id>/pages/menu.xhtml</to-view-id> 
    </navigation-case> 
</navigation-rule> 

У меня есть это в моей консоли после execuring applcation: janv. 09, 2014 11:00:41 PM com.sun.faces.renderkit.html_basic.MessageRenderer encodeEnd ПРЕДУПРЕЖДЕНИЕ: атрибут 'для' не может быть нулем Любой знает, где проблема?

ответ

0

Существует заглавная «L» в

<from-action>#{LoginBean.authentification()}</from-action> 

Это должно быть в нижнем регистре:

<from-action>#{loginBean.authentification()}</from-action> 
+0

ТНХ для ответа, но это не решает problem.In факт имя управляемому бина это LoginBean с капиталом «L». – user3179505

+0

Действительно ли называется 'authentification()'? Потому что, если bean действительно называется LoginBean, то действие в '' неверно или здесь есть опечатка. –

+0

, который решил проблему thx :) – user3179505