Editar dados em jsp e servlet

1 resposta
Z

bom dia galera gostaria de uma ajuda porque não consigo resolver este ponto. desde já agradeço a ajuda.

estou fazendo uma formulário simples onde posso cadastra, excluir e editar, a minha dificuldade esta sendo
como carregar o com os dados já cadastrado no banco para editar

como faço? eu já ate consegui listar todos os dados do banco mais um dados especifico não sei como fazer.

meu codigo

package controller;

import dao.AlunoDAO;
import dao.FabricaConexao;
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Aluno;

public class AlunoControle extends HttpServlet {
 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

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

        if(comando == null || comando.equals(""))
        {response.sendRedirect("index.jsp");}

        if(comando.equals("editar")){EditarDados(request,response);}
        if(comando.equals("listar")){ListarDados(request, response);}
       
    } 

    private void EditarDados(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

        String nome = request.getParameter("nome");
        FabricaConexao fabrica = new FabricaConexao();
        Connection conexao = fabrica.abrirConexao();

        Aluno novo = new Aluno();
        novo.setNome(nome);
        
        AlunoDAO dao = new AlunoDAO(conexao);
        dao.editarDados(novo);

    } 

    private void ListarDados(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }

}
----------------------------------------


package dao;

import model.Aluno;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import java.util.ArrayList;
import java.util.List;

public class AlunoDAO {
    Connection conexao;

    public AlunoDAO() {}

    public AlunoDAO(Connection conexao) {
        this.conexao = conexao;
    }

    public void editarDados(Aluno aluno) {
        String            comando = "update app.aluno set nome = ?";
        PreparedStatement p;

        try {
            p = this.conexao.prepareStatement(comando);
            p.setString(1, aluno.getNome());
            p.executeUpdate();
        } catch (Exception e) {
            System.out.println("Erro ao executar atualização class AlunoDAO");
        }
    }

    public List<Aluno> ListarDados() {
        String      comando = "select * from app.aluno";
        List<Aluno> aluno   = new ArrayList<Aluno>();

        try {
            PreparedStatement p  = this.conexao.prepareStatement(comando);
            ResultSet         rs = p.executeQuery();

            while (rs.next()) {
                Aluno  alunoX = new Aluno();
                String nome   = rs.getString("nome");

                alunoX.setNome(nome);
                aluno.add(alunoX);
            }
        } catch (Exception e) {
            System.out.println("Erro ao executar ListarDados Class AlunoDAO");
        }

        return aluno;
    }
}
----------------------


package dao;

import java.sql.Connection;
import java.sql.DriverManager;

public class FabricaConexao {

    java.sql.Connection conexao;

    public Connection abrirConexao()

    {
        try { Class.forName("org.apache.derby.jdbc.ClientDriver");
        conexao = DriverManager.getConnection("jdbc:derby://localhost:1527/teste","zeimbic","zeimbic");

        } catch (Exception e) {System.out.println("Erro ao executar Abertura de " +
                "Conexão com  Banco class FabricaConexao");
        }
return conexao;

    }

    public void fecharConexao()
    {
        try {conexao.close();

        } catch (Exception e) {System.out.println("Erro ao executar Fechamento de " +
                "Conexão com  Banco class FabricaConexao");
        }

    }

}
---------------------------------
<%-- 
    Document   : index
    Created on : 11/07/2012, 07:56:04
    Author     : xp
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="model.Aluno" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form action="AlunoControle?comando=editar">
        Nome:<input type="text" name="nome" value="<%=request.getParameter("nome")%>" /><input type="submit" value="Editar" />
        </form >
    </body>
</html>

1 Resposta

R

Cara minha dica para você é a seguinte:

Cria uma pagina que lista todos os dados em uma tabela, cria uma coluna nesta tabela para ações, no caso coloque uma editar que conterá um href passando a id do dado selecionado, neste caso você enviaria o usuário para o formulario de cadastro só que passando a id , assim os dados já serão enviados com o formulario preenchido de acordo com a id informada. Pesquisa por Expression Language e JSTL é muito importante para o desenvolvimento de paginas JSP com integração aos Servlets para que você não fique utilizando scriptlets.

Aqui no forum tem muitos exemplos de crud com JSP e Servlets faça uma pesquisa que você vai encontrar.

Qualquer coisa pode mandar MP.

Criado 12 de julho de 2012
Ultima resposta 13 de jul. de 2012
Respostas 1
Participantes 2