Erro simples com JSF

1 resposta
M

Pessoal estou aprendendo JSF e tenho o erro abaixo.

/comprar.xhtml @14,79 value="#{compraAtivaFaces.RetornaCompraID}": The class ‘mtsys.beans.CompraAtivaFaces’ does not have the property ‘RetornaCompraID’.

Que ocorre quando eu faço:

<!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:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">

    <ui:composition template="base.xhtml">
        <ui:define name="content">
            <h:form>
                <f:view>
                    Bem-Vindo a compra
                    <br/>
                    <h:outputText value="#{compraAtivaFaces.RetornaCompraID}"></h:outputText>
                </f:view>
            </h:form>
        </ui:define>
    </ui:composition>
</html>

As classes são:

package mtsys.db;

public class CompraAtiva implements java.io.Serializable {

    private int CompraAtivaID;

    public CompraAtiva (){

    }

    public int getCompraAtivaID() {
        return CompraAtivaID;
    }

    public void setCompraAtivaID(int CompraAtivaID) {
        this.CompraAtivaID = CompraAtivaID;
    }
}
package mtsys.dao;

public class CompraAtivaDAO {


    public CompraAtivaDAO(){
        super();
    }

    public int CompraAtivaID(int CompraID){
        
        return CompraID;
    }

}
package mtsys.beans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import mtsys.dao.CompraAtivaDAO;
import mtsys.db.CompraAtiva;

/**
 *
 * @author Marlon Tiedt
 */
@ManagedBean
@SessionScoped
public class CompraAtivaFaces {

    private CompraAtivaDAO  daoCompraAtiva = new CompraAtivaDAO();
    private CompraAtiva     selectCompraAtiva;

    /** Creates a new instance of TiposDocumentosFaces */
    public CompraAtivaFaces() {
        System.out.println("Está vivo");
    }

    public String CriarCompra(int CompraID){
        selectCompraAtiva = new CompraAtiva();

        selectCompraAtiva.setCompraAtivaID(CompraID);
        return  "finalizarCompra";
    }

    public int RetornaCompraID(){
        return selectCompraAtiva.getCompraAtivaID();
    }

}

Qual será o motivo do erro?

1 Resposta

D

Na classe CompraAtivaFaces troque o nome do método RetornaCompraID para getRetornaCompraID e na página troque
#{compraAtivaFaces.RetornaCompraID} para #{compraAtivaFaces.retornaCompraID}

O JSF acessa as propriedades do bean através de métodos getters and setters.

Criado 3 de novembro de 2010
Ultima resposta 3 de nov. de 2010
Respostas 1
Participantes 2