[JSF]Dúvida de Listagem

2 respostas
K

Caros,

Estou começando a aprender sobre JSF para fazer um trabalho de faculdade ,mas me deparei com um problema.
Ao tentar inserir e listar , está dando erro de não encontrar os dados.

Vou colar meus códigos aqui.

Gosatria de saber como eu faço para o meu jsf interpretar que são os aatributos da minha classe Quarto.java que eu quero ter mas na classe QuartoBean.java

segue abaixo os códigos.

quarto.java
package quarto;

/**
 *
 * @author Guilherme
 */
public class Quarto {


    private Integer numero;
    private Integer ncamas;
    private String descricao;
    private String opcionais;
    private Float valor;

    /**
     * @return the numero
     */
    public Integer getNumero() {
        return numero;
    }

    /**
     * @param numero the numero to set
     */
    public void setNumero(Integer numero) {
        this.numero = numero;
    }

    /**
     * @return the ncamas
     */
    public Integer getNcamas() {
        return ncamas;
    }

    /**
     * @param ncamas the ncamas to set
     */
    public void setNcamas(Integer ncamas) {
        this.ncamas = ncamas;
    }

    /**
     * @return the descricao
     */
    public String getDescricao() {
        return descricao;
    }

    /**
     * @param descricao the descricao to set
     */
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }


    /**
     * @return the valor
     */
    public Float getValor() {
        return valor;
    }

    /**
     * @param valor the valor to set
     */
    public void setValor(Float valor) {
        this.valor = valor;
    }

    /**
     * @return the opcionais
     */
    public String getOpcionais() {
        return opcionais;
    }

    /**
     * @param opcionais the opcionais to set
     */
    public void setOpcionais(String opcionais) {
        this.opcionais = opcionais;
    }
}
QuartoBean.java
package quarto;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Guilherme
 */
public class QuartoBean {

    private List<Quarto> lista = new ArrayList<Quarto>();    

    public String insere() {

        Quarto quarto = new Quarto();

        int flag = 0;
        String retorno = "erro";

        DAOquarto daoQuarto = new DAOquarto();

        try {
            flag = daoQuarto.insere(quarto);
            if (flag == 1) {
                retorno = "sucesso";
            }
        } catch (Exception ex) {
            Logger.getLogger(QuartoBean.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;

    }

    public List<Quarto> lista() {

        DAOquarto daoQuarto = new DAOquarto();

        this.lista = DAOquarto.getQuarto();

        for (Quarto q : this.lista) {
            this.lista.add(q);
        }

        return lista;

    }
}
DAOQuarto
package quarto;

import connection.XConnection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class DAOquarto {

    public int insere(Quarto quarto) throws Exception {

        int flag = 0;

        try {
            String sql = "INSERT INTO quarto ("
                    + "numero, "
                    + "ncamas, "
                    + "descricao, "
                    + "opcionais, "
                    + "valor) "
                    + "VALUES('"
                    + quarto.getNumero() + "','"
                    + quarto.getNcamas() + "','"
                    + quarto.getDescricao() + "','"
                    + quarto.getOpcionais() + "','"
                    + quarto.getValor() + "')";

            XConnection conn = new XConnection();
            flag = conn.atualiza(sql);
            conn.fechaConexao();

        } catch (Exception e) {
            System.out.println("ERRO insereQuarto: " + e.getMessage());
        }

        return flag;
    }

    public static List<Quarto> getQuarto() {

        List<Quarto> quartos = new ArrayList<Quarto>();

        try {

            ResultSet rs;
            String sql = "select * from quarto";

            XConnection conn = new XConnection();

            rs = conn.seleciona(sql);
            while (rs.next()) {
                Quarto quarto = new Quarto();
                quarto.setNumero(Integer.parseInt(rs.getString("numero")));
                quarto.setDescricao(rs.getString("ncamas"));
                quarto.setNumero(Integer.parseInt(rs.getString("descricao")));
                quarto.setOpcionais(rs.getString("opcionais"));
                quarto.setValor(Float.parseFloat(rs.getString("valor")));

                quartos.add(quarto);

            }

            conn.fechaConexao();
            return quartos;

        } catch (Exception e) {
            // System.out.print("Não foi possível fazer a conexão com o banco");
        }

        return quartos;
    }
}

e meus jsps:

insere
<html>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>
  <head>
    <title>Cadastro De Quarto</title>
  </head>
  <body>
    <h:form>
      <h3>Por favor insira os dados do Quarto a ser Inserido</h3>
      <table>
        <tr>
          <td>Numero do Quarto</td>
          <td><h:inputText  value="#{quarto.numero}"/></td>
        </tr>
        <tr>
          <td>Numero de Camas</td>
          <td><h:inputText value="#{quarto.ncamas}"/></td>
        </tr>
        <tr>
          <td>Descricao</td>
          <td><h:inputTextarea value="#{quarto.descricao}"/></td>
        </tr>
        <tr>
          <td>Opcionais</td>
          <td><h:inputTextarea value="#{quarto.opcionais}"/></td>
        </tr>
        <tr>
          <td>Valor</td>
          <td><h:inputText value="#{quarto.valor}"/></td>
        </tr>
        <tr>
          <td colspan="2"><h:commandButton value="Insere Quarto"
             action="#{quarto.insere}"/></td>
        </tr>
      </table>
    </h:form>
  </body>
</f:view>
</html>
e lista
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
            <title>JSP Page</title>
        </head>
        <body>
            <h1><h:outputText value="Login ou Senha Invalidos"/></h1>
            <h:dataTable value="#{quarto.lista}" var="item">
                    <h:column>
                      <f:facet name="header">
                        <h:outputText value="NUMERO"/>
                      </f:facet>
                        <h:outputText value="#{quarto.numero}"/>
                    </h:column>
             </h:dataTable>
        </body>
    </html>
</f:view>
por ultimo...meu faces-config
<?xml version="1.0"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
  version="1.2">
  
  <managed-bean>
    <managed-bean-name>quarto</managed-bean-name>
    <managed-bean-class>quarto.QuartoBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope></managed-bean>
  <navigation-rule>
    <from-view-id>/listQuarto.jsp</from-view-id>
    <navigation-case>
      <from-outcome>sucesso</from-outcome>
      <to-view-id>/sucesso.jsp</to-view-id>
    </navigation-case>
    <navigation-case>
      <from-outcome>erro</from-outcome>
      <to-view-id>/erro.jsp</to-view-id>
    </navigation-case>
  </navigation-rule>
  
</faces-config>

Caso alguem possa me ajudar..eu agradeço bastante.

2 Respostas

K

ninguem ?realmente estou precisando disso

ivansalvadori

na tua view de listagem:

<h:dataTable value="#{quarto.lista}" var=“item”>

<h:column>

<f:facet name=“header”>

<h:outputText value=“NUMERO”/>

</f:facet>

<h:outputText value="#{quarto.numero}"/>

</h:column>

vc nao pegou a lsta de teu bean… vc pegou quarto.lista
será que nao deveria ser quartoBean.lista?
depois vc pega a lista e atribui a var=item, mas depois se referencia a quarto.numero
nao deveria ser item.numero?

<h:dataTable value="#{quartoBean.lista}" var=“item”>

<h:column>

<f:facet name=“header”>

<h:outputText value=“NUMERO”/>

</f:facet>

<h:outputText value="#{item.numero}"/>

</h:column>

Criado 6 de dezembro de 2010
Ultima resposta 7 de dez. de 2010
Respostas 2
Participantes 2