Eu criei uma pagina que cadastra clientes, e abaixo dele tem uma tabela representando a lista dos clientes cadastrados. Eu quero que ao executar a action ele ja chama o metodo para listar os clientes e joga na tabela da pagina JSP e com isso chamar os campos de formulario a tabela e os registros, caso foram cadastrados. Mas nao está preenchendo!
Como faço isso??
Seria melhor que ao chamar a action para invocar o JSP, ele chamar tbm outra action?
Como faço pra invocar o JSP de cadastro e alimentar a tabela de clientes na mesma pagina?
publicclassClienteActionextendsAction{/** * Mètodo formulario - Chama outra Action (ListaClienteAction) que * alimenta a tabela de clientes e chama a pagina JSP para cadastro. * @param mapping - Redireciona para a pagina pedida * @param form - E usado para captura os valores dos campos * @param request - Não e usado nesse método * @param response - Não é usado nesse metodo * @return ActionForward - Retorna a pagina solicitada */publicActionForwardformulario(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ActionForwardforward=null;ClienteDAOclienteDAO=newClienteDAO();Collectionclientes=null;try{clientes=clienteDAO.getCliente();forward=mapping.findForward("cadCliente");}catch(Exceptione){request.setAttribute("err",e.getClass().getName()+":"+e.getMessage());forward=mapping.findForward("ERRO");}request.setAttribute("clientes",clientes);returnforward;}// fim do método formulario}//fim da Action
E o método getCliente do ClienteDAO:
publicclassClienteDAO{privateDAOdao=null;PreparedStatementpst=null;privateStringSQL;/** Criando um objeto ClienteDAO */publicClienteDAO(){dao=DAO.getInstance();}/** * Retorna todas os clientes cadastrados. * * @return - Lista de todas os clientes cadastrados. * @throws DAOException - * Caso ocorra algum erro ao buscar conex�o ou pesquisar a lista * de clientes. */publicCollection<ClienteDTO>getCliente()throwsDAOException{Connectionconn=dao.getConnection();Collection<ClienteDTO>clientes=null;try{// Faz a consulta para puxar todos os registrosSQL="SELECT codigoCliente,nome,cnpj,num_contrato,duracao_contrato,SLA_Atendimento FROM cliente";clientes=newArrayList<ClienteDTO>();pst=conn.prepareStatement(SQL);ResultSetrs=pst.executeQuery();while(rs.next()){ClienteDTOcliente=newClienteDTO();cliente.setIdCliente(rs.getInt("codigoCliente"));cliente.setNomeCliente(rs.getString("nome"));cliente.setCnpj(rs.getString("cnpj"));cliente.setNumContrato(rs.getString("num_contrato"));cliente.setDuracaoContrato(rs.getString("duracao_contrato"));cliente.setSlaAtendimento(rs.getString("SLA_Atendimento"));clientes.add(cliente);System.out.println(clientes);System.out.println("----------------------------------------------------\n");}rs.close();//Fecha o resultset}catch(Exceptione){thrownewDAOException(e.getMessage());}finally{/* * Libera a conex�o de volta para o Pool. */try{conn.close();}catch(SQLExceptione1){thrownewDAOException(e1.getMessage());}}returnclientes;}// fim do método getCliente()}// fim da classe ClienteDAO
Talvez esses codigos faça entender mais ou menos o que quero.
VLW!!!
maschiojv
Não sei se estou falando besteira, mas eu tentei fazer isso que vcê fez e tive o mesmo problema, dai eu usei outra taglib e funcionou
O Codigo está certo. O unico problema que aconteceu é que tive que limpar o cache do Tomcat, e depois limpar o cache do navegador e do sistema e reiniciei.
Vai entender!!!
No Windows isso é direto, mas no Linux é dificil!!
Caso acontecer isso com vcs, tenta isso
VLW Pessoal!!