почему выходит эта ошибка в JSF?

Я едва начинаю использовать JSF и делаю практику login, только, что выходит следующая ошибка, кто-то, кто помогал бы мне introducir la descripción de la imagen aquí

Я оставляю им мой код файла index.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!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://xmlns.jcp.org/jsf/html">
    <h:head>
        <title>Pagina del Login</title>
    </h:head>
    <h:body>
        <h:form>
            <h1><h:outputText value="Login del Sisrema"/></h1>
            <h:outputText value="Nombre de usuario:"/>
            <h:inputText id="txtNombre" value="#{LoginManagedBean.nombre}"/>
            
            <br></br>
            <br></br>
            <h:outputText value="Clave de usuario:"/>
            <h:inputSecret id="txtClave" value="#{LoginManagedBean.clave}"/>
            
            <br></br>
            <br></br>
            <h:commandButton value="Aceptar" action="#{LoginManagedBean.cmdEnviarAction}"/>
                        
        </h:form>  
    </h:body>
</html>

Мой код faces-config.xml

<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2"
              xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
    <managed-bean>
        <managed-bean-name>LoginManagedBean</managed-bean-name>
        <managed-bean-class>beans.LoginManagedBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        
        <managed-property>
            <property-name>nombre</property-name>
            <value>admin</value>
        </managed-property>
    </managed-bean>
</faces-config>

и мой файл LoginManagedBean.java

package beans;


public class LoginManagedBean {

    
    public LoginManagedBean() {}
    
    private String nombre;
    private String clave;
    
    public String getClave(){
        return clave;
    }
    public void setClave (String clave){
        this.clave = clave;
    }
    
    public String getNombre(){
        return nombre;
    }
    public void setNombre (String nombre){
        this.nombre = nombre;
    }
    public String cmdEnviarAction()
    {
        System.out.println("Nombre = " +getNombre());
        System.out.println("Clave = " +getClave());
        return null;
    }
}
0
задан 02.01.2017, 04:52
0 ответов

Если он использует JSF 2.2 согласно Вашему файлу faces-config:

<faces-config version="2.2 ..."

Почему не использовать аннотации?

import javax.faces.bean.*;

@ManagedBean
@RequestScoped
public class LoginManagedBean {
...
}

или с CDI

import javax.inject.Named;
import javax.enterprise.context.RequestScoped;

@Named
@RequestScoped
public class LoginManagedBean {
...
}   

По умолчанию, и я думаю, что ésto он идет также на старый стиль используя faces-config чтобы объявлять managed bean, JSF то, что он делает, состоит в том, чтобы создавать инстанцию этого, когда его потребуют, и имя инстанции состоит тем же именем класса, но с первой буквой в строчной букве, а именно, что, чтобы соглашаться в LoginManagedBean через Expression Language он был бы:

#{loginManagedBean}

А следовательно возможно, что Ваша ошибка (если он хочет продолжить использовать старый стиль заявления managed beans) - возможно, что упорядочивают, если ему меняет имя в строчную букву первая буква:

<managed-bean>
    <managed-bean-name>loginManagedBean</managed-bean-name>
    <managed-bean-class>beans.LoginManagedBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
  ...
</managed-bean>
1
ответ дан 03.12.2019, 17:54