exercício método GET

[color=blue]Qual seria a solução para que na primeira chamada da página produto.jsp (via método GET), os campos dos dados dos produtos apareçam vazios, ou seja, sem exibir zeros e nulls. [/color]

[code]String acao = request.getParameter(“vAcao”);
if (acao.equals(“Incluir”))
incluir(request, response);
else
consultar(request, response);

   }catch (Exception objEx){
	request.setAttribute("objExcecao", objEx);
  	RequestDispatcher rd = request.getRequestDispatcher("paginaErro.jsp");
      rd.forward(request, response);
   }
}

//PASSA CONTROLE PARA PÁGINA processado.jsp
request.setAttribute(“operacao”, request.getParameter(“vAcao”));
RequestDispatcher rd = request.getRequestDispatcher(“processado.jsp”);
rd.forward(request, response);
} catch (Exception objEx) {
request.setAttribute(“objExcecao”, objEx);
RequestDispatcher rd = request.getRequestDispatcher(“paginaErro.jsp”);
rd.forward(request, response);
}
}
[/code]

Olá Meg, desculpe, talvez seja uma falha de interpretação minha, mas vc poderia fornecer mais algumas informações sobre seu problema?

Por exemplo:

  • de onde vem essa chamada;
  • se você está tendo problemas com nulos e “” na captura dos seu parâmetros em seu servlet (doGet, por exemplo);
  • se está obtendo algum NullPointerException, por exemplo, após capturar os request.getParameter e tentar fazer algo com essas variáveis.

Att,
Fernando Antonio Barbeiro Campos

é mais ou menos assim… quando vou fazer a chamada para a pagina ser exibida os campos aparecem com valores zeros e null e so depois de outra chamada q passa a apresentar o valores reais…preciso que na primeira visualização da paginas todos os campos apareçam totalmente vazios,melhorou?

Tenta iniciar a tua bean com um construtor que seta valores nas variáveis que estão nulas

se eu setar valores nas variáveis,vai exibir os valores que setei,não? é para aparecer o campo vazio,sem nada.

Olá Meg, seguindo o conselho do Joseph Barros, se vc tem, por exemplo, uma String e coloca ela como vazia (com literal “”) não resolve seu problema?

Nos campos de variáveis de classe tu simplesmente inicializa, claro que em casos de primitivos tu vai precisar setar um valor mesmo.

vlw glra pelos toqs…vou testar aki

:?:

glra,obrigada pela discas,mas não resolveu a questão…então resolvi postar o código completo do exercício.

ah, dei esta solução, q tbm não foi aceita :frowning:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); }

infelizmente ainda não resolvi a questão.

pf,pf,pfarvozim…alguem resolve isso p mim.:slight_smile:

a pergunta conforme o questionário:

Pergunta sobre o página produto.jsp.

[b]Apresente uma solução para que na primeira chamada da página produto.jsp (via método GET), os campos dos dados dos produtos apareçam vazios, ou seja, sem exibir zeros e nulls.

[/b]

[code]I-Código fonte da classe Servlet Produto.

package p8;

import java.sql.*;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
//outros imports omitidos desta página

public class ServletProduto extends HttpServlet {
private static final long serialVersionUID = 1L;

//Construtor **************
public ServletProduto() {
}

//DoPOST
protected void doPost(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {
  try {
	 //vAcao é o NAME do botão SUBMIT na página produto.jsp   
	 String acao = request.getParameter("vAcao");
	 if (acao.equals("Incluir"))
		 incluir(request, response);
	 else
		 consultar(request, response);

   }catch (Exception objEx){
	request.setAttribute("objExcecao", objEx);
  	RequestDispatcher rd = request.getRequestDispatcher("paginaErro.jsp");
      rd.forward(request, response);
   }
}

private void incluir (HttpServletRequest request, HttpServletResponse response)
                 throws Exception {
	try {
    	//ESCREVER PROCEDIMENTOS PARA INSERT NA TABELA
	String strCodigo = request.getParameter("vCodigo");
	int codigo = Integer.parseInt(strCodigo);
	String descricao = request.getParameter("vDescricao");
	String strValor = request.getParameter("vVlrUnit");
	float valor = Float.parseFloat(strValor);
	String strQtde = request.getParameter("vQtde");
	int qtde = Integer.parseInt(strQtde);
	//INSTRUÇÃO SQL INSERT - FORMATO JDBC
	String sql = "INSERT INTO TBProdutos VALUES (?, ?, ?, ?)";
	Connection conexao = FabricaConexao.abreConexaoMySQL();
	PreparedStatement comando = conexao.prepareStatement(sql);
	comando.setInt(1, codigo);
	comando.setString(2, descricao);
	comando.setDouble(3, valor);
	comando.setInt(4, qtde);
	comando.execute();
	//PASSA CONTROLE PARA PÁGINA processado.jsp
	request.setAttribute("operacao", request.getParameter("vAcao"));
  	RequestDispatcher rd = request.getRequestDispatcher("processado.jsp");
      rd.forward(request, response);
	} catch (Exception objEx) {
		request.setAttribute("objExcecao", objEx);
  	RequestDispatcher rd = request.getRequestDispatcher("paginaErro.jsp");
      rd.forward(request, response);
	}
}



private void consultar (HttpServletRequest request, HttpServletResponse response)             
                  throws Exception {
	try {
      String strCodigo = request.getParameter("vCodigo");
    int codProd = Integer.parseInt(strCodigo);
    String sql = "SELECT * FROM TBProdutos WHERE Codigo = ?";
    Connection conexao = FabricaConexao.abreConexaoMySQL();
    PreparedStatement comando = conexao.prepareStatement(sql);
    comando.setInt(1, codProd);
      //EXECUTA SELECT NA TABELA - executeQuery
    ResultSet resultadoSelect = comando.executeQuery();
    if (resultadoSelect.next()){ //Se retorno consulta válida
      String descProd = resultadoSelect.getString("descricao");
      float valorProd = resultadoSelect.getFloat("valorunit");
      int qtdeProd = resultadoSelect.getInt("qtde");
      ProdutoBean produto = 
    		new ProdutoBean(codProd, descProd, valorProd, qtdeProd);
      request.setAttribute("objProd", produto);
  	RequestDispatcher rd = request.getRequestDispatcher("produto.jsp");
      rd.forward(request, response);
    }
	} catch (Exception objEx) {
		request.setAttribute("objExcecao", objEx);
  	RequestDispatcher rd = request.getRequestDispatcher("paginaErro.jsp");
      rd.forward(request, response);
	}
}

II- Trecho do Código Fonte da classe FábricaConexao

public class FabricaConexao {
//DADOS PARA CONEXAO AO MYSQL
*/

private static String DRIVER_M = “com.mysql.jdbc.Driver”; //Classe do driver
private static String BANCO_M = “BDLoja”; //Nome do Banco criado
private static String HOST_M = “localhost”; //Servidor BD
private static String STR_CONEXAO_M = “jdbc:mysql://”+HOST_M+
“:3306/” + BANCO_M;
private static String USUARIO_M = “root”; //Usuario do banco
private static String SENHA_M = “root”; //Senha de conexao

public static Connection abreConexaoMySQL() throws SQLException{
try {
Class.forName(DRIVER_M);
Connection con =
DriverManager.getConnection(STR_CONEXAO_M,USUARIO_M,SENHA_M);
return con;
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}

III-Trecho do Código Fonte da classe ProdutoBean (apenas construtor parametrizado)

public class ProdutoBean { //Item 3
. . .
public ProdutoBean(int codigo, String descricao, float vlrUnit, int qtde) {
super();
this.codigo = codigo;
this.descricao = descricao;
this.vlrUnit = vlrUnit;
this.qtde = qtde;
}
. . .
[/code]