[Duvida] sobre JSP

0 respostas
devvdevv.interior

Bom galera, sempre me complico em postar minhas duvidas hehe vou tentar ser claro, tenho uma JSP onde existe uma conexao com banco mysql e que ao carrega-la eu já "listo" todos os clientes cadastrados, mais a baixo tenho um link para cadastrar um novo cliente, ao clicar carrego uma nova JSP, onde existe o formulario de cadastro de clientes ao clicar cadastrar chamo outra JSP, pois não estou utilizando Servlet... e nesta JSP ele faz a inserção porem eu queria que assim que clicasse em cadastrar ele executa-se a inserção e volta-se automaticamente para a pagina onde lista todos.. eu tentei fazer aonde ao clicar em cadastrar a inserção fosse feita na pagina de listar, porem da um erro creio que é pq está executando pela primeira vez, e não ha "parametros" para serem cadastrados, como poderia fazer? segue meu codigo.

JSP onde listo os clientes já cadastrados.

<%@page import="java.sql.*"%>
<jsp:useBean class="util.Conexao" id="conexao" />
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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>Cadastro de Clientes</title>
    </head>
    <body>
        
        <h1>Clientes Cadastrados</h1>
        
        <%
            PreparedStatement ps = null;
            ResultSet rs = null;

            if (conexao.conectar()){
              ps = conexao.getConexao().prepareCall("SELECT * FROM CLIENTE");
              rs = ps.executeQuery();

              while (rs.next()){
                  out.println(rs.getInt(1)+ " - " +
                              rs.getString(2)+ " - " +
                              rs.getString(3)+ " - " +
                              rs.getString(4)+ "<br/>");
              }
              rs.close();
              conexao.desconectar();
            }
        %>

        <a href="cadastroClientes2.jsp"> Novo Cliente </a>

        
    </body>
</html>

Formulario de Cadastro chamado pela pagina anterior.

<%@page import="java.sql.*" %>
<jsp:useBean class="util.Conexao" id="conexao" />
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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>Clientes</title>
    </head>
    <body>
        
          <form action="cadastroClientes3.jsp" method="get" >

          <h1> Cadastro de Clientes </h1>
          Código:  <input type="text" name="codigo" /> <br/>
          Nome:    <input type="text" name="nome" /> <br/>
          Sexo:    <input type="radio" name="sexo" value="M" />Masculino
          <input type="radio" name="sexo" value="F" />Feminino  <br />
          Telefone:<input type="text" name="fone" /> <br/>
          <input type="submit" value="Cadastrar"/>
          
         </form>
    </body>
</html>

Aqui a chamada para executar a inserção, porem aqui eu queria que na verdade volta-se para primeira pagina, ja listando o cliente recem cadastrado.
tentei fazer tudo na primeira pagina, porem ocorre o erro, por causa da primeira utilização e não ha parametros ainda.. como devo proceder?

<%@page import="java.sql.*" %>
<jsp:useBean class="util.Conexao" id="conexao" />
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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>Clientes</title>
    </head>
    <body>
        <h1>Clientes Cadastrados</h1>

        <a href="cadastroClientes2.jsp"> Novo Cliente </a>
       <%
            PreparedStatement ps1= null;

            int codigo;
            String nome,telefone;
            String sexo;

             if (conexao.conectar()){
                codigo = Integer.parseInt(request.getParameter("codigo"));
                nome = request.getParameter("nome");
                sexo = request.getParameter("sexo");
                telefone = request.getParameter("fone");


            ps1 = conexao.getConexao().prepareStatement("INSERT INTO CLIENTE VALUES(?,?,?,?)");
            ps1.setInt(1, codigo);
            ps1.setString(2, nome);
            ps1.setString(3, sexo);
            ps1.setString(4, telefone);

            
           try{
                ps1.executeUpdate(); //para inserir ou atualização
            }catch (SQLException e){
                e.printStackTrace();
                }
             conexao.desconectar();
             }
        %>
    </body>
</html>

Aguardo por ajuda, Obrigado.

Criado 4 de maio de 2011
Respostas 0
Participantes 1