Expression Language não apresenta dados do objeto BEANS

0 respostas
D

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!!!

Criado 10 de março de 2016
Respostas 0
Participantes 1