E ai galera!
Sou bem novato no Java Web e estou tentando fazer um sistema que controlaria o cadastro de clientes de um banco.
Criei um HTML, com formulário onde o usuário deve digitar o ID do cliente para posterior alteração de cadastro. Este primeiro JSP envia o ID por parâmetro para um Servlet. Este Servlet recebe o parâmetro, faz uma busca no banco com ele e devolve um objeto BEANS com os dados do cliente.
Outro JSP é chamado para apresentar os dados deste objeto BEANS para que o usuário escolha quais dados irá altualizar.
Consegui enviar o parâmetro “id_cli”, confirmei que o Servlet realmente faz a busca com aquele “id_cli” e chama outro JSP, devolvendo o objeto BEANS.
O problema é que para apresentar os dados usando EL, o formulário aparece em branco no JSP.
Fiz o teste com Scriptlet “<%= %>” e ele funciona normalmente, mas acho a solução do EL mais elegante e queria usar ela.
Já inseri no JSP o <%@page isELIgnored=“false” %> e não resolveu. Alguem mais experiente pode me dizer onde eu errei ?
Vou copiar os principais arquivos (retirando o que for desnecessário pra encurtar)
atualiza-contato.html
<html>
<head>
<title>Atualizando contato</title>
</head>
<body>
<form action="Converte_DAO_BEANS" method="post">
<table>
<tr><td colspan="2">Digite o Id do usuário cujos dados devem ser atualizados</td></tr>
<tr><td>Id :</td><td><input type="text" name="id_cli"/></td></tr>
<tr><td colspan="2"><input type="submit" value="Confirmar"/></td></tr>
</table>
</form>
</body>
</html>
Converte_DAO_BEANS.java
package servlet;
imports (vários imports)
@WebServlet(
urlPatterns = { "/Converte_DAO_BEANS" },
name = "Converte_DAO_BEANS" )
public class Converte_DAO_BEANS extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) throws ServletException {
super.init(config);
log("Iniciando a servlet");
}
public void destroy() {
super.destroy();
log("Destruindo a servlet");
}
public Converte_DAO_BEANS() {
super();
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String id = request.getParameter("id_cli");
int id_cli = Integer.parseInt(id);
try {
AssistenteDAO assist = new AssistenteDAO();
ClienteBEANS cli = assist.seleciona_cliente(id_cli);
request.setAttribute("clicli", cli);
RequestDispatcher rd = request.getRequestDispatcher("/apresenta2.jsp");
rd.forward(request,response);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
AssistenteDAO.java
public ClienteBEANS seleciona_cliente(int id_cli) {
ClienteBEANS cliente = new ClienteBEANS();
String sql = "select * from cliente where id_cli=?";
try {
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setInt(1, id_cli);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
int id = rs.getInt("id_cli");
String nome = rs.getString("nome_cli");
String login = rs.getString("login_cli");
String senha = rs.getString("senha_cli");
String cpf = rs.getString("cpf_cli");
FuncionarioBEANS astnt = new AssistenteBEANS();
cliente = astnt.criaClienteID(id, login, senha, nome, cpf);
rs.close();
stmt.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return cliente;
}
ClienteBEANS.java
package source;
public class ClienteBEANS {
protected int id_cli;
protected String login_cli;
protected String senha_cli;
protected String nome_cli;
protected String cpf_cli;
public ClienteBEANS() {
}
public int getId_Cli() {
return id_cli;
}
public void setId_Cli(int id) {
this.id_cli = id;
}
public void setLogin_Cli(String login) {
this.login_cli = login;
}
public String getLogin_Cli() {
return this.login_cli;
}
public void setNome_Cli(String nome) {
this.nome_cli = nome;
}
public String getNome_Cli() {
return this.nome_cli;
}
public String getCPF_Cli() {
return this.cpf_cli;
}
public String setCPF_Cli(String cpf) {
String resultado = null;
if (this.verificaCPF(cpf) == true) {
this.cpf_cli = cpf;
resultado = "Seu CPF inserido com sucesso!";
} else {
//cpf_cli = null;
resultado = "Seu CPF não foi inserido, ele esta fora do padrao";
}
return resultado;
}
public String setSenha_Cli(String senha) {
String resultado = null;
if (this.verificaSenha(senha) == true ) {
this.senha_cli = senha;
resultado = "Sua senha_cli foi cadastrada com sucesso!";
} else {
//this.senha_cli = null;
resultado = "Erro ! Sua senha_cli deve contar entre 6 e 8 caracteres. Tente novamente.";
}
return resultado;
}
public String getSenha_Cli() {
return this.senha_cli;
}
............. (etc)
apresenta2.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="source.*" isELIgnored="false"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="assist" class="source.AssistenteDAO"></jsp:useBean>
<jsp:useBean id="cliente" class="source.ClienteBEANS"></jsp:useBean>
<%
cliente = (ClienteBEANS) request.getAttribute("clicli");
%>
<form action="confirma_atualiza.jsp"method="post">
<table border="1">
<tr>
<td>Id</td>
<td>Login</td>
<td>Senha</td>
<td>Nome</td>
<td>CPF</td>
</tr>
<c:if test="${not empty cliente}">
<tr>
<td><input type="text" name="id_cli" value="${cliente.id_Cli}" readonly/></td>
<td><input type="text" name="login_cli" value="${cliente.login_Cli}"/></td>
<td><input type="text" name="senha_cli" value="${cliente.senha_Cli}"/></td>
<td><input type="text" name="nome_cli" value="${cliente.nome_Cli}"/></td>
<td><input type="text" name="cpf_cli" value="${cliente.CPF_Cli}"/></td>
</tr>
<tr>
<td><input type="submit" value="Atualizar"/></td>
</tr>
</c:if>
</table>
</form>
</body>
</html>
Aceito qualquer sugestão.
Valeu!!!