DisplayTag PageSize [RESOLVIDO]

Estou com um problema, quero definir dinamicamente o numero de elementos que meu displayTag irá mostra por tela…

Originalmente eu tenho algo assim:

<display:table pagesize=“5” />

E já tentei colocar assim:

<display:table pagesize="${numeroPaginas}" />

Onde no meu action eu tenho isso:

Integer teste = new Integer(2);
session.setAttribute(“numeroPaginas”, teste);

So que ele me da o seguinte erro:

Erro: Unable to convert constant to type int for attribute “pagesize” of tag “table”.

Alguém tem alguma sugestão???

Só uma coisa,
Acho que o seu atributo tem que estar na request e não na session…
Desculpe se falei besteira, é que mexi muito pouco com o DisplayTag e lembro que tinha umas coisas assim…

Ela aceita os 2, se você estiver usando EL esse processo fica transparente.

${valor}

Como habilitar EL?
Alias, desculpa a pergunta mas o que é?

EL = Expression Language, usado para substituir scriplets e outras tags porcas.

Tente colocar essa diretiva no inicio do seu JSP:

<%@page isELIgnored="false"%>

E faça um teste, jogue alguma coisa no request ou sessão

request.setAttribute("teste","mensagem teste");
${teste}

Eu coloquei desta maneira:

<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
<%@ taglib prefix="display" uri="/WEB-INF/displaytag.tld" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page isELIgnored="false" %> 

E o erro resultante:

500 Internal Server Error
OracleJSP: oracle.jsp.parse.JspParseException: Número da Linha 4, <%@ page isELIgnored=“false” %>
Erro: Atributo inválido: isELIgnored

Talvez a minha biblioteca “c” seja antiga!.. sera que atualizando a minha JSTL resolva este erro?

Essas suas diretivas estão estranhas teste com essas aqui:

<%@ taglib uri="http://displaytag.sf.net" prefix="display"%>
<%@ 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"%>
<%@ page isELIgnored="false" %> 

Qual a versão do seu container (Tomcat etç)?

Tb não deu certo
:frowning:

Erro:

Será que se eu atualizar minha taglib resolve?!
Achei essa aqui:

jakarta-taglibs-standard-1.1.2 -> http://linorg.usp.br/apache/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip

Sugestão?

A detalhe… to com OC4J aqui… será que é ele?

Veja a especificação dele de Servlets no site Oracle para a sua versão, o recurso de EL so a partir da versão 2.3 de Servlets, nossa eu já me fu… com esse OC4J.

Bom acabei de pesquisar aqui:

JavaServer Pages (JSP) 1.2
Servlets 2.3
Enterprise JavaBeans (EJB) 2.0
Java Transaction API (JTA) 1.0
Java Message Service (JMS) 1.0
Java Naming and Directory Interface (JNDI) 1.2
Java Mail 1.1.2
Java Database Connectivity (JDBC) 2.0 Extension
Oracle Application Server Java Authentication
and Authorization Service
1.0
J2EE Connector Architecture (JCA) 1.0
JAXP 1.1

Então é alguma coisa errada na chamada das taglibs!..
:S

Dando uma olhadinha no google, EL a partir da versão 2.O do JSP, e veja como está o seu web.xml em relação ao jstl, nos containers mais atuais não precisa se referenciar a taglib, mas no seu caso creio que seja nescessario, alguém aqui já fez a displaytag funcionar com jstl nessa especificação que o colega mencionou do OC4J acima para auxilia-lo?

to procurando aqui…
mas acho que é mesmo algo de biblioteca…

quando tento usar: <%@ page isELIgnored=“false” %>
ele está dando erro!..

digito <%@ (ctrl espaço) para ver os complementos e nem do disponíveis é o isELIgnored…

o seu web.xml, ai esta configurado como?!

No meu web.xml não preciso configurar nada em relação as taglibs, estou trabalhando com Tomcat 6 aqui, o OC4J é parto para isso nas versões mais antigas.

Hum…
estava olhando aqui…
meu cabeçalho do meu web.xml esta assim:

[quote]<?xml version="1.0" encoding="UTF-8"?>

[/quote]

E eu acho que ele deveria ser parecido com isso aqui:

O seu está parecido?!
Aqui eu tb não preciso “configurar” as Taglib… a “c” por exemplo erra so chamar…

Boa tarde…
Se o o valor que voce quer atribuir à paginação está na sessão, o código deveria ser:
${sessionScope.numeroPaginas}
Beleza???
Abraço!

Deveria…
mas quando eu uso desta maneira ele me retorna o seguinte erro:

[quote]OracleJSP: oracle.jsp.parse.JspParseException: Número da Linha 202, </display:table>
Erro: Unable to convert constant to type int for attribute “pagesize” of tag “table”.[/quote]

Estou sem idéias para resolver isso…
Alguém!?

Acho que meu problema é o OC4J 904!..
:?

Consegui uma solução!!!
MAS ELA É MUITOOOOOOO PORCA!

No meu action eu tenho assim:

No meu JSP eu fiz isto aqui:

So que não estou feliz com ela não!!!
será, que não tem outra maneira?

Será que seria uma idéia melhor mexer nos Fontes do displayTag???
Existe uma classe: TableTag que possui o método, setPagesize!!.. será que este é o melhor caminho?

Verifique se vc esta utilizando a TLD displaytag-el …

Consegui uma outra solução!!!
Que o próprio DisplayTag fornece!..

utilizarei a tld: displaytag-el.tld, que vem junto do jar do DisplayTag, http://displaytag.sourceforge.net/11/tlds.html
que da o o suporte a EL…
assim eu posso usar pagesize="${LISTA}"

=D