Dúvida neste código

11 respostas
H

Este é um código de select para uma table PESSOA listar dados de um select da TABLE Uf - listar estados: gostaria de saber o que significa este d em negrito, antes de getLista(), Preciso de ajudar urgente. Isso em jsp.

<%

List lista = d.getLista();

for (Uf uf : lista){ %>

 <%= uf.getIduf() + " " + uf.getEstado() %> 

<% } %>

11 Respostas

romarcio

Esse ‘d’ é a variavel de referencia que está te dando o acesso ao método.

Vc deve ter tido uma instância antes dessa parte do código, que faz a referencia a esse ‘d’.

paulo1911

Ola amigo,

Esse “d” provavelmente é um nome de atributo declarado anteriormente no jsp. Ou uma instancia de algum controlador(outro jsp);

poste todo o código para nos certificarmos.
Fallow

H

Estou desenvolvendo um projeto WEB, preciso pegar da TABLE UF, uma lista de ESTADOS cadastrados, para lista-los e salva-lo na TABLE Pessoa, aqui vai o List do meu DAO Pessoa: com todos os import referente a UF.

[/code]

public List todosUf( )  throws Exception{

PreparedStatement ps = null;

Connection conn = null;

ResultSet rs = null;
try {
        conn = this.conn;
        ps = conn.prepareStatement("select * from uf");
        rs = ps.executeQuery( );
        List<Uf> list = new ArrayList<Uf>( );
        while( rs.next( ) ) {
            Integer iduf = rs.getInt( 1 );
            String estado = rs.getString( 2 );

            list.add( new Uf(iduf, estado));

        }
        return list;

    } catch (SQLException sqle) {
        throw new Exception(sqle);
    } finally {
        ConexaoBancoDeDados.CloseConnection(conn, ps, rs);
    }
}

Em seguida, alterei o SELECT no meu pessoa.jsp, UF, para tentar capturar os dados da TABLE UF, neste select: acho que não está correto, pq não captura os dados.

<tr>
             <td>Uf:</td>
                <td><select name="id_ufid" class="campos">
                <option value="">Selecione UF</option>
               <c:forEach var="id_ufid" items="${listarEstados}">
                               <option value="${nomeUf.iduf}">
                                                      ${nomeUf.estado}
                               </option>
                     </c:forEach>
                </select></td>
   </tr>

Em seguida está a classe Pessoa:

package br;

/**
*

  • @author Henriko
    */
    public class Pessoa {

    private Integer idpessoa;
    
    private String nome;
    
    private String telefone;
    
    private String email;
    
    private String senha;
    
    private String endereco;
    
    private String cidade;
    
    private String uf_iduf;
    
    private String tipo_usuario;
    
    public Pessoa(Integer idpessoa, String nome, String telefone, String email, String senha, String endereco, String cidade, String uf_iduf, String tipo_usuario) {
    
    this.idpessoa = idpessoa;
    
    this.nome = nome;
    
    this.telefone = telefone;
    
    this.email = email;
    
    this.senha = senha;
    
    this.endereco = endereco;
    
    this.cidade = cidade;
    
    this.uf_iduf = uf_iduf;
    
    this.tipo_usuario = tipo_usuario;
    
    }
    

public Pessoa(){

}

public Integer getIdpessoa() {
    return idpessoa;
}

   public void setIdpessoa(Integer idpessoa) {
    this.idpessoa = idpessoa;
}

 public String getNome() {
    return nome;
}

   public void setNome(String nome) {
    this.nome = nome;
}

   public String getTelefone() {
    return telefone;
}

   public void setTelefone(String telefone) {
    this.telefone = telefone;
}

   public String getEmail() {
    return email;
}

   public void setEmail(String email) {
    this.email = email;
}


public String getSenha() {
    return senha;
}


public void setSenha(String senha) {
    this.senha = senha;
}


public String getEndereco() {
    return endereco;
}


public void setEndereco(String endereco) {
    this.endereco = endereco;
}


public String getCidade() {
    return cidade;
}


public void setCidade(String cidade) {
    this.cidade = cidade;
}


public String getUf_iduf() {
    return uf_iduf;
}


public void setUf_iduf(String uf_iduf) {
    this.uf_iduf = uf_iduf;
}

   public String getTipo_usuario() {
    return tipo_usuario;
}


public void setTipo_usuario(String tipo_usuario) {
    this.tipo_usuario = tipo_usuario;
}

}

SERVLET de Pessoa:

package br.web;

import br.Pessoa;
import br.PessoaDAOImp;
import br.dao.DaoPess;
import java.io.*;
import java.util.List;
import javax.servlet.*;
import javax.servlet.http.*;

/**
  * @author HENRIKO
 */
public class SVPessoa extends HttpServlet {

     protected void processRequest(HttpServletRequest request,
 				HttpServletResponse response)
    throws ServletException, IOException {

        String cmd = request.getParameter( "cmd" );

        if(cmd==null)
            cmd = "principal";

        DaoPess dao;
        Pessoa pessoa = new Pessoa( );
        if(cmd!=null || !cmd.equalsIgnoreCase("principal")){
            try {
                String idpessoa = request.getParameter("idpessoa");
                if(idpessoa!=null)
                pessoa.setIdpessoa(Integer.parseInt(idpessoa));

                pessoa.setNome(request.getParameter("nome"));
                pessoa.setSenha(request.getParameter("senha"));
                pessoa.setTipo_usuario(request.getParameter("tipo_usuario"));
                pessoa.setTelefone(request.getParameter("telefone"));
                pessoa.setEmail(request.getParameter("email"));
                pessoa.setEndereco(request.getParameter("endereco"));
                pessoa.setCidade(request.getParameter("cidade"));
                pessoa.setUf_iduf(request.getParameter("uf_iduf"));
                
            } catch (Exception ex) {
                ex.printStackTrace( );
            }

        }

        try {

            dao = new PessoaDAOImp( );
            RequestDispatcher rd = null;
            if(cmd.equalsIgnoreCase("listar")){

                List pessoaList = dao.todosPessoa( );
                request.setAttribute( "pessoaList", pessoaList );
                rd = request.getRequestDispatcher( "/Pessoa.jsp" );

            } else if( cmd.equalsIgnoreCase( "adc" ) ){

                dao.salvar( pessoa );
                rd = request.getRequestDispatcher( "SVPessoa?cmd=listar" );

            } else if( cmd.equalsIgnoreCase( "exc" ) ){

                dao.excluir( pessoa );
                rd = request.getRequestDispatcher( "SVPessoa?cmd=listar" );

            } else if( cmd.equalsIgnoreCase( "atu" ) ){

                pessoa = dao.procurarPessoa(pessoa.getIdpessoa( ));
                HttpSession session=request.getSession(true);
                session.setAttribute( "pessoa", pessoa );
                rd = request.getRequestDispatcher( "/atualizaPessoa.jsp" );

            } else if( cmd.equalsIgnoreCase( "atualizar" ) ){

                dao.atualizar( pessoa );
                rd = request.getRequestDispatcher( "SVPessoa?cmd=listar" );

            } else if( cmd.equalsIgnoreCase( "principal" ) ){

                rd = request.getRequestDispatcher( "/inserirPessoa.jsp" );

            }
            rd.forward( request, response );
        } catch( Exception e ) {
            e.printStackTrace( );
            throw new ServletException( e );
        }

    } 

E NA INTERFACE DAOPess

package br.dao;

import br.Pessoa;
import java.util.List;

/**

  • @author HENRIKO
    */
    public interface DaoPess {

    void atualizar(Pessoa pessoa) throws Exception;

    void excluir(Pessoa pessoa) throws Exception;

    Pessoa procurarPessoa(Integer idpessoa) throws Exception;

    void salvar(Pessoa pessoa) throws Exception;

    List todosPessoa() throws Exception;

}

Espero que possam me ajudar.

paulo1911

Ola amigo, no seu servlet de cadastro onde fica o campo de estado que vc quer carregar, vc precisa chamar o dao de estados e chamar o metodo todosUf

Ex.:

Dao Estado daoEstado=new DaoEstadoImpl();
List listarEstados= dao.todosUf( ); // carrega os estados do dao

//carrega o combo UF
&lt;tr&gt;
&lt;td&gt;Uf:&lt;/td&gt;
&lt;td&gt;&lt;select name="id_ufid" class="campos"&gt;
&lt;option value=""&gt;Selecione UF&lt;/option&gt;
&lt;c:forEach var="id_ufid" items="${listarEstados}"&gt; // veja que alista ja foi retornada do dao
&lt;option value="${nomeUf.iduf}"&gt;
${nomeUf.estado}
&lt;/option&gt;
&lt;/c:forEach&gt;
&lt;/select&gt;&lt;/td&gt;
&lt;/tr&gt;

Tente isso.
Espero ter ajudado!!
Fallow

H

Bom, este é o meu DAO Uf, onde são gravados os estados:

package br.dao;


import br.dao.DaoUf;
import br.ConexaoBancoDeDados;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import  br.Uf;
/**
 *
 * @author JAVA PROGRAMMER
 */

public class UfDAOImp implements DaoUf {

    private Connection conn;


     public  UfDAOImp() throws Exception{

        try{
            this.conn = ConexaoBancoDeDados.getConnection();

        }catch(Exception e){
            throw new Exception("Erro:"+
                    ":\n" + e.getMessage());
        }
    }

    @Override
    public void salvar(Uf uf)  throws Exception{
        PreparedStatement ps = null;
        Connection conn = null;
        if (uf == null)
            throw new
                    Exception("O valor passado não pode ser nulo");

        try {
            String SQL = "INSERT INTO uf (estado) "+
                         "values ( ?)";
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            ps.setString(1, uf.getEstado( ));
                   

            ps.executeUpdate( );

        } catch (SQLException sqle) {
            throw new
                    Exception("Erro ao inserir dados "+ sqle);
        } finally {
            ConexaoBancoDeDados.CloseConnection(conn, ps);

        }
    }


@Override
        public List todosUf( )  throws Exception{
        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;

        try {
            conn = this.conn;
            ps = conn.prepareStatement("select * from uf");
            rs = ps.executeQuery( );
            List<Uf> list = new ArrayList<Uf>( );
            while( rs.next( ) ) {
                Integer iduf = rs.getInt( 1 );
                String estado = rs.getString( 2 );
                
                
                

                list.add( new Uf(iduf, estado));

            }
            return list;

        } catch (SQLException sqle) {
            throw new Exception(sqle);
        } finally {
            ConexaoBancoDeDados.CloseConnection(conn, ps, rs);
        }
    }

@Override
public Uf procurarUf(Integer iduf)
    throws  Exception {
        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;

        try {
            conn = this.conn;
            ps =
		conn.prepareStatement("select * from uf where iduf=?");
            ps.setInt(1, iduf);
            rs = ps.executeQuery( );
            if( !rs.next( ) ) {
                throw new
                        Exception( "Não foi encontrado nenhum" +
                        " registro com o ID: " + iduf );
            }

                String estado = rs.getString( 2 );
                                                

            return new Uf(iduf, estado) ;

        } catch (SQLException sqle) {
            throw new  Exception(sqle);
        } finally {
            ConexaoBancoDeDados.CloseConnection(conn, ps, rs);

        }
    }

 @Override
    public void excluir(Uf uf) throws Exception {
        PreparedStatement ps = null;
        Connection conn = null;

        if (uf == null)
            throw new
                    Exception("O valor passado não pode ser nulo");

        try {
            conn = this.conn;
            ps =
		conn.prepareStatement("delete from uf where iduf=?");
            ps.setInt(1, uf.getIduf( ));
            ps.executeUpdate( );
            

        } catch (SQLException sqle) {
            throw new
                    Exception("Erro ao excluir dados:" + sqle);

        } finally {
            ConexaoBancoDeDados.CloseConnection(conn, ps);
        }
    }

    public void atualizar(Uf uf)  throws Exception {
        PreparedStatement ps = null;
        Connection conn = null;

        if (uf == null)
            throw new
                    Exception("O valor passado não pode ser nulo");

        try {
            String SQL = "UPDATE uf SET estado=?, " +
                    "where iduf=?";
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            ps.setInt(1, uf.getIduf( ));
                     

            ps.setString(2, uf.getEstado( ));

            ps.executeUpdate( );

        } catch (SQLException sqle) {
            throw new
                    Exception("Erro ao atualizar dados: "+ sqle);
        } finally {
            ConexaoBancoDeDados.CloseConnection(conn, ps);

        }
    }
}

Este a a interface do DAO:

/*
*

  • Date 20/12/2010 18:10:52
    */

package br.dao;

import br.Uf;
import java.util.List;

/**
*

  • @author HENRIKO
    */
    public interface DaoUf {

    void atualizar(Uf uf) throws Exception;

    void excluir(Uf uf) throws Exception;

    Uf procurarUf(Integer iduf) throws Exception;

    void salvar(Uf uf) throws Exception;

    List todosUf() throws Exception;

}

Onde devo implatar isto no servlet Pessoa? Agradeço pelo ajuda, não consegui antes.

paulo1911

Certo.

Coloque isto no seu Servlet de cadastro de pessoa:

UfDAOImp daoEstado=new UfDAOImp();  vc deve instancia seu dao para listar os estados
 List listarEstados= daoEstado.todosUf( ); // Chama o método todosUf() do Dao e carrega os estados na lista
   
 //carrega o combo UF  
 &lt;tr&gt;  
 &lt;td&gt;Uf:&lt;/td&gt;  
 &lt;td&gt;&lt;select name="id_ufid" class="campos"&gt;  
 &lt;option value=""&gt;Selecione UF&lt;/option&gt;  
 &lt;c:forEach var="id_ufid" items="${listarEstados}"&gt; // veja que alista ja foi retornada do dao  
 &lt;option value="${nomeUf.iduf}"&gt;  
 ${nomeUf.estado}  
 &lt;/option&gt;  
 &lt;/c:forEach&gt;  
&lt;/select&gt;&lt;/td&gt;  
 &lt;/tr&gt;

Caso não funciona mande a classe servlet via Attachments para eu ver ok!

Fallow

H

SEGUE O SERVLET

H

Desculpe, segue novo arquivo de meu SERVLET, anterior com problemas. Agradeço mais uma vez pela ajuda, pq estou precisando mesmo e não estou sabendo como fazer.

H

Alguém para ajudar, agradeço.

H

Preciso de alguma resposta do meu amigo paulo1911. Será que vc pode me ajudar?

H

Não consegui resolver o problema, alguém pode ajudar.

Criado 18 de janeiro de 2011
Ultima resposta 23 de jan. de 2011
Respostas 11
Participantes 3