Como verificar se o bean foi realmente instanciado jsp:useBean id"" class""

7 respostas
bsl.lacerda

Como eu posso saber se o bean foi realmente instanciado? Eu não estou conseguindo exibir o resultado do método que lista os incidentes registrados em aberto no meu sistema em uma página JSP.
Tem algum outro meio de saber se o bean está funcionando sem ser através da execução de um método get do mesmo?
Assim está o meu código:

<%@page pageEncoding="Cp1252" contentType="text/html; charset=Cp1252" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="java.util.*,br.com.skafe.web.dao.*, br.com.skafe.web.modelo.*, br.com.skafe.web.businesslogic.*"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
<jsp:useBean id="dao" class="br.com.skafe.web.dao.IncidenteDAO"/>
<title></title>
</head>
<body>
<%@ include file="cabecalho.jsp" %>

<c:forEach var="incidente" items="${dao.incidentes}"> 
	<li>
		${inc}
		Incidente..: ${incidente.contato}	
	</li>
</c:forEach>
<%@ include file="rodape.jsp" %>
</body>
</html>

E este é o meu resultado

7 Respostas

v1c70r_f

Acho que você pode verificar com um <c:if> mesmo

<c:if  test="${!empty dao.incidentes}">

</c:if>

amigo, você está usando EL, será que está configurado direitinho???
se usar um <c:out value""/>, também acontece o mesmo???

bsl.lacerda

Olá amigo!
Coloquei o forEach dentro do teste com c:if e não apareceu nada, como se a lista o resultado retornado fosse pelo metodo getIncidentes fosse em branco mas isto não é verdade.

<c:if test="${!empty dao.incidentes}">
<c:forEach var="incidente" items="${dao.incidentes}"> 
	<li>		
		${incidente.contato}
	</li>
</c:forEach>
</c:if>

No console ele mostra o resultado do método direitinho

bsl.lacerda

Qual é o lugar certo para inserir a tag

<jsp:useBean></jsp:useBean>

é no body, no head é onde?
eu coloquei o meu no body mas já tentei em todos os locais da página.

v1c70r_f

Amigo, então, na verdade estou acostumado a usar jstl sem declarar a variável usando jsp:useBean, como você está mandando este objeto para a página?? Você sabe em que escopo ele está, se é na session, request …

no console você só da um println e mostra o conteúdo, mas será que seu objeto está chegando na página mesmo???

você utiliza struts? Se sim coloca seu mapeamento pra gente, ou então como você implementa seu servlet…

acredito mesmo que seu objeto não esteja chegando na página…

quanto a localização do jsp:useBean, costumo usar no body e funciona normalmente também…

bsl.lacerda

Bom dia!
Vamos lá.

Escrevendo este post percebi que realmente eu faço o redirecionamento mas não passo como parâmetro esta variável para a JSP que vai exibir. É por isto que o objeto está vazio.
Agora estou fazendo o redirecionamento desta forma mas o resultado está sendo o endereço em memória de cada objeto. Está certo fazer deste jeito?
Como eu faço para exibir o conteúdo certinho já que agora o objeto está chegando à página de resultado?

Minha lógica é esta.

Eu tenho uma página jsp que é onde o usuário faz a consulta dos incidentes pelo status do incidente, data inicial e data final de consulta.
Estes dados são enviados junto com o nome da classe a uma ServletControler(uma servlet que faz o trabalho de identificar se a classe que etá sendo chamada implementa uma interface que possui o método execute que recebe dois parâmetros Um do tipo HttpServletRequest e um HttpServletResponse).
Se a classe assinar o método execute, a ServletControler entrega a responsabilidade para a classe que foi instânciada na servletControler e é aí que eu dou um request.getParameter nos parâmetros para envialos ao IncidenteDAO que possui o método getIncidentes que me retorna uma lista com todos os Incidentes encontrados naquele intervalo de data e status.
A partir daí estou na classe que chamou o método getIncidentes com a lista de incidentes retornada.
Eu atribuo o valor desta lista a uma variável do tipo ArrayList e faço o redirecionamento para a página que vai exibir o resultado da pesquisa.

v1c70r_f

Amigo, respondi lah no seu outro post…

http://www.guj.com.br/posts/list/0/68639.java

veverto

vê se o EL está habilitado.
coloca <%@ page isELIgnored =“false” %> no inicio da pagina

Criado 5 de setembro de 2007
Ultima resposta 19 de ago. de 2008
Respostas 7
Participantes 3