Erro com displaytag

11 respostas
B

Pessoal, coloquei as libs todas, e acho que fiz quase tudo certo, mas algo dá errado…o que será? alguém já viu esse erro tosco?

org.apache.jasper.JasperException: javax.servlet.jsp.JspException: Error looking up property inscricao in object type java.lang.String.

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: Error looking up property inscricao in object type java.lang.String.

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:854)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)

org.apache.jsp.jsp.cobranca.dco.relatorios.prazoInf31dias_jsp._jspService(prazoInf31dias_jsp.java:92)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

minha página jsp tem:

<%@ page language=java contentType=text/html; charset=ISO-8859-1

pageEncoding=ISO-8859-1%>

<%@ taglib uri="/tags/struts-logic" prefix=logic%>

<%@ taglib uri="/tags/struts-html" prefix=html%>

<%@ taglib uri="/tags/struts-bean" prefix=bean%>

<%@ taglib uri=<a href="http://displaytag.sf.net">http://displaytag.sf.net</a>” prefix=“display”%>

<%@ page import=java.lang.String %>

<logic:notPresent name=“listas” scope=“session”>
<logic:redirect forward=“error” />
</logic:notPresent>
html:html

.....

eu envio a lista assim:

HttpSession session = request.getSession();
session.setAttribute(“listas”, lista);

e ela nao está nula nao, está com os registros!!!

alguém já passou por isso?

obrigado!

11 Respostas

otavio

Altere <display:table list=“requestScope.listas” >
para <display:table list="${requestScope.listas}" >

B

mudei na parte de list para name e agora dá : nenhum registro encontrado…poootzzzz
<display:table name=“requestScope.listas” >
<display:column property=“inscricao” title=“Inscrição” />
<display:column property=“nome” title=“Nome” />
<display:column property=“operacao” title=“Operação” />
<display:column property=“produto” title=“Produto” />
<display:column property=“valor” title=“valor” />
</display:table>

B

opa! vou tentar , já respondo se deu certo!
obrigado

B

Deu o mesmo erro inicial… que troço chato! o displaytag era pra simplificar e nao complicar!

otavio

Há algo errado com teu código, e não com a displaytag.

Seguinte… pelo erro você está fazendo getInscricao() em uma classe String. Ou seja, quando você está passando a lista de objetos para a displyatag está passando na verdade uma String, e não objeto de lista.

B

Que estranho!

olha o meu codigo:

List lista = new LinkedList();

if(lista.size() > 0){

lista.clear();

lista = null;

}else{

lista = EmiteRelatoriosDcoService.geraRelatorio(idRel,dataCobranca);

}
//manda a lista para o jsp
		HttpSession session = request.getSession();
		session.setAttribute("listas", lista);
B

Cara, eu tenho certeza que estou enviando uma list mesmo, eu debuguei e vi que está tudo certo…
porém pode ser na hora de setar a lista ou de receber na jsp né?
nao sei o q pode ser…pra mim tá tudo nos conformes! tem outra idéia?
O engraçado é que quando uso list na displaytag que dá o erro da string, quando uso o name fala que não tem registros pra mostrar.

B

Cara, eu tenho certeza que estou enviando uma list mesmo, eu debuguei e vi que está tudo certo…
porém pode ser na hora de setar a lista ou de receber na jsp né?
nao sei o q pode ser…pra mim tá tudo nos conformes! tem outra idéia?
O engraçado é que quando uso list na displaytag que dá o erro da string, quando uso o name fala que não tem registros pra mostrar.

otavio

Antes algumas sugestões:

Não é necessário colocar <%@ page import="java.lang.String" %>. Todas as classes do pacote java.lang são automaticamente importadas.

List&lt;RelDebInf2000VO&gt; lista = new LinkedList&lt;RelDebInf2000VO&gt;(); 
if(lista.size() &gt; 0){ 
lista.clear(); 
lista = null; 
}else{ 
lista = EmiteRelatoriosDcoService.geraRelatorio(idRel,dataCobranca); 
}

Aqui você inicializa a lista, testa se ela é maior que zero (que nunca vai acontecer, pois ela sempre tem size = 0 quando inicia), limpa a lista e deixa ela como nula. Que confusão. Deixe simples assim:

List&lt;RelDebInf2000VO&gt; lista = EmiteRelatoriosDcoService.geraRelatorio(idRel,dataCobranca); 
request.setAttribute("listas", lista);

Outra coisa, note que você adicionou a tal lista no escopo SESSION, mas tentou buscar pelo REQUEST aqui:
session.setAttribute("listas", lista);
<display:table name="requestScope.listas" >

Outra... não precisa declarar as tags do HTML <table>, pois a displaytag já faz isso. Abaixo tbm te envio um exemplo meu:

&lt;display:table name="${categoryList}"&gt;
	&lt;display:column property="id" /&gt;
	&lt;display:column property="title" /&gt;
	&lt;display:column href="category.edit.do" paramId="id" paramProperty="id"&gt;
		&ltimg src="/pics/edit.png" alt="" /&gt
	&lt;/display:column&gt;
	&lt;display:column href="category.delete.do" paramId="id" paramProperty="id"&gt;
		&ltimg src="/pics/delete.png" alt="" /&gt
	&lt;/display:column&gt;
&lt;/display:table&gt;

Minha classe do vraptor:

@Out
    protected Category category;

    public void list() {
        categoryList = categoryService.findAll();
    }
B

Bem, fiquei com a idéia de o problema era ou na passagem da lista ou no recebimento na jsp, daí resolvi mudar de session para request e deu certo! valeu!

B

Obrigado otávio, na verdade tava tanta coisa doida por conta dos testes e testes que fiz ao longo do dia pensando em solucionar o problema, mas vou seguir sim seus codigos!
valew mesmo!

Criado 10 de fevereiro de 2009
Ultima resposta 10 de fev. de 2009
Respostas 11
Participantes 2