Galera boa noite!
Estou tentando implementar uma página JSP a nível de aprendizado, que lista uma série de informações sobre uma empresa retornadas de um BD, tenho o método DAO que me retorna essas informações que recupero na página JSP através de um JavaBean que chama o método de listagem do DAO. Partindo de um ponto de vista que o método pode me retornar uma lista vazia, usei uma tag JSTL do tipo “if”. Entendi perfeitamente como funciona esta estrutura condicional, e que não existe “else” para ela. Sendo assim, criei 2 ifs, um para mostrar uma linha na tabela caso a lista retornada seja vazia, e caso venha populada, me exibir os dados populando a tabela. Porém, quando uso esses 2 ifs ao mesmo tempo na minha JSP, é retornada uma página de erro (o console apenas apresenta erro do tipo RuntimeException de origem do catch do meu metodo getLista() da classe EmpresaDAO), mas quando uso um ou outro a página funciona, porém não me traz o resultado desejado que é ter as 2 condições ao mesmo tempo. Poderiam me ajudar a uma solução que eu possa ter essas minhas 2 condições funcionando ao mesmo tempo? Eu achei isso bizarro e não consegui evoluir. Segue abaixo a estrutura do meu código:
JSP:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head><title>HelPrint - Lista Empresa</title></head>
<body>
<jsp:useBean id="dao" class="br.com.flavio.suprimentos.dao.EmpresaDAO"/>
<h1>Informações da Empresa</h1>
<table>
<c:if test="${empty dao.lista}">
<tr><td><font color="red">Nenhuma empresa cadastrada no momento!</font></td></tr>
</c:if>
<c:if test="${not empty dao.lista}">
<c:forEach var="empresa" items="${dao.lista}">
<tr>
<td><b>ID:</b></td>
<td>${empresa.idEmpresa}</td>
</tr>
<tr>
<td><b>Razão Social:</b></td>
<td>${empresa.razaoSocial}</td>
</tr>
<tr>
<td><b>Nome Fantasia:</b></td>
<td>${empresa.nomeFantasia}</td>
</tr>
<tr>
<td><b>CNPJ:</b></td>
<td>${empresa.cnpj}</td>
</tr>
<tr>
<td><b>Inscrição Estadual:</b></td>
<td>${empresa.inscrEstadual}</td>
</tr>
<tr>
<td><b>Endereço:</b></td>
<td>${empresa.endereco}</td>
</tr>
<tr>
<td><b>Bairro:</b></td>
<td>${empresa.bairro}</td>
</tr>
<tr>
<td><b>Cidade:</b></td>
<td>${empresa.cidade}</td>
</tr>
<tr>
<td><b>Estado:</b></td>
<td>${empresa.estado}</td>
</tr>
<tr>
<td><b>CEP:</b></td>
<td>${empresa.cep}</td>
</tr>
<tr>
<td><b>Telefone:</b></td>
<td>${empresa.telefone}</td>
</tr>
<tr>
<td><b>Fax:</b></td>
<td>${empresa.fax}</td>
</tr>
<tr>
<td><b>Site:</b></td>
<td>${empresa.site}</td>
</tr>
<tr>
<td><a href="altera-empresa.jsp?idEmpresa=${empresa.idEmpresa}">Alterar Cadastro</a></td>
<td><a href="exclui-empresa.jsp?idEmpresa=${empresa.idEmpresa}">Excluir Cadastro</a></td>
</tr>
<tr><td><br/></td></tr>
<tr><td><br/></td></tr>
</c:forEach>
</c:if>
</table>
</body>
</html>
Trecho do método DAO:
public List<Empresa> getLista(){
String consulta = "SELECT * FROM empresa";
try {
PreparedStatement stmt = conn.prepareStatement(consulta);
ResultSet rs = stmt.executeQuery();
List<Empresa> listaEmpresa = new ArrayList<Empresa>();
while(rs.next()){
Long idEmpresa = rs.getLong("idEmpresa");
String razaoSocial = rs.getString("razaoSocial");
String nomeFantasia = rs.getString("nomeFantasia");
String cnpj = rs.getString("cnpj");
String inscrEstadual = rs.getString("inscrEstadual");
String endereco = rs.getString("endereco");
String bairro = rs.getString("bairro");
String cidade = rs.getString("cidade");
String estado = rs.getString("estado");
String cep = rs.getString("cep");
String telefone = rs.getString("telefone");
String fax = rs.getString("fax");
String site = rs.getString("site");
Empresa empresa = new Empresa();
empresa.setIdEmpresa(idEmpresa);
empresa.setRazaoSocial(razaoSocial);
empresa.setNomeFantasia(nomeFantasia);
empresa.setCnpj(cnpj);
empresa.setInscrEstadual(inscrEstadual);
empresa.setEndereco(endereco);
empresa.setBairro(bairro);
empresa.setCidade(cidade);
empresa.setEstado(estado);
empresa.setCep(cep);
empresa.setTelefone(telefone);
empresa.setFax(fax);
empresa.setSite(site);
listaEmpresa.add(empresa);
}
rs.close();
stmt.close();
conn.close();
return listaEmpresa;
} catch (SQLException e) {
throw new RuntimeException();
}
}
Agradecido desde já!
