Bom dia pessoal, Estou tendo dificuldades para realizar o CRUD em um app de teste…
Fiz ele com o padrão (quase) MVC, o problema é que ao clicar no form de “Novo Produto” e preencher os campos ele não faz a inserção, somente me direciona a uma tela com o nome do Controller na url (ficando: http://localhost:8080/Teste/ProdutoController)
Esse é o cód do meu form:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ADD novo Produto</title>
</head>
<body>
<form method="POST" action='ProdutoController' name="formAddProduto">
<input type="hidden" name="action" value="insert" />
<table>
<tr>
<td>Codigo de Barras</td>
<td><input type="text" name="codBarras" />
</tr>
<tr>
<td>Nome do produto</td>
<td><input type="text" name="Nome_Produto" />
</tr>
<tr>
<td>Valor</td>
<td><input type="text" name="Valor_Produto" />
</tr>
<tr>
<td></td>
<td><input type="submit" value="submit" /></td>
</tr>
</table>
</form>
<p><a href="ProdutoController?action=listProduto"> Todos os Produtos </a></p>
</body>
</html>
Este é o trecho da Controller que pertence ao INSERT:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String redirect="";
String codBarras = request.getParameter("codBarras");
String action = request.getParameter("action");
if(!((codBarras) == null) && action.equalsIgnoreCase("insert"))
{
int cb = Integer.parseInt("codBarras");
Produto p = new Produto();
p.setCodBarras(cb);
p.setNmProduto(request.getParameter("Nome_Produto"));
p.setValorProduto(Float.parseFloat(request.getParameter("Valor_Produto")));
dao.addProduto(p);
redirect = ListaProduto;
request.setAttribute("produtos", dao.getProdutos());
System.out.println("Produto adicionado com sucesso");
}
Estou tendo esse mesmo problema com o formulário de Update… ocorre a mesma coisa já os demais (listar Produto e Deletar Produto) estão normais.
Código do form de atualizar Produto:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Editar Produto</title>
</head>
<body>
<% Produto p = new Produto(); %>
<% ProdutoDAO dao = new ProdutoDAO(); %>
<form method="POST" action='ProdutoController' name="formEditaProduto">
<input type="hidden" name="action" value="edit" />
<% String cb = request.getParameter("codBarras");
if (!((cb) == null )){
int cb2 = Integer.parseInt(cb);
p = dao.getCodBarras(cb2);
%>
<table>
<tr>
<td>Codigo de Barras</td>
<td><input type="text" name="codBarras" readonly="readonly" value="<%=p.getCodBarras()%>"> </td>
</tr>
<tr>
<td>Nome do produto</td>
<td><input type="text" name="Nome_Produto" value="<%=p.getNmProduto()%>"/>
</tr>
<tr>
<td>Valor</td>
<td><input type="text" name="Valor_Produto" value="<%=p.getValorProduto()%>"/>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Update" /></td>
</tr>
</table>
<% } else{
out.println("ID Not found");
} %>
</form>
</body>
E o código da Controller referente ao edit:
else if (action.equalsIgnoreCase("edit")){
String codBarras2 = request.getParameter("codBarras");
int cb = Integer.parseInt(codBarras2);
Produto p = new Produto();
p.setCodBarras(cb);
p.setNmProduto(request.getParameter("Nome_Produto"));
p.setValorProduto(Float.parseFloat(request.getParameter("Valor_Produto")));
dao.uptProduto(p);
request.setAttribute("produto", p);
redirect = ListaProduto;
System.out.println("Record updated Successfully");
Já refiz o código umas 30 vezes e sempre da a mesma =/