Paginação de resultados

14 respostas
vinicius_roc

Pessoal por me ajudem!

Eu tenho um codigo que retorna a quantidade de elementos da minha tabela. E outro que retorna o resultado em paginas. Ambos utilizo o Hibernate.

Até ai tudo bem.

A minha duvida é a seguinte.

1º: como faço para tirar esse codigo java da minha pagina usando taglib?

<%! int i = 0; %>

<c:forEach begin=“1” end="${pgs}">

<%= ++i %>

</c:forEach>

<% i = 0;%>

pgs é o nome da variavel onde guardo o numero de paginas.

2º: como faço para por exemplo o usuario clica na pagina 2 ai exibe o conteudo dela, depois ele entra na 5 por exemplo e depois quer voltar para 1. Algo assim. Resumindo: Como faço para ir para a pagina que usuario escolher? que nem acontece no google por exemplo.

Obrigado

Att,

Vinicius Roberto

14 Respostas

Mero_Aprendiz

vinicius_roc:
Pessoal por me ajudem!

Eu tenho um codigo que retorna a quantidade de elementos da minha tabela. E outro que retorna o resultado em paginas. Ambos utilizo o Hibernate.

Até ai tudo bem.

A minha duvida é a seguinte.

1º: como faço para tirar esse codigo java da minha pagina usando taglib?

<%! int i = 0; %>

<c:forEach begin=“1” end="${pgs}">

<%= ++i %>

</c:forEach>

<% i = 0;%>

pgs é o nome da variavel onde guardo o numero de paginas.

2º: como faço para por exemplo o usuario clica na pagina 2 ai exibe o conteudo dela, depois ele entra na 5 por exemplo e depois quer voltar para 1. Algo assim. Resumindo: Como faço para ir para a pagina que usuario escolher? que nem acontece no google por exemplo.

Obrigado

Att,

Vinicius Roberto

Olá Vinicius.
Bem, se o que você quer é paginar os resultados, você pode dar uma olhadinha nome DisplayTag(http://displaytag.sourceforge.net/1.2/) ou no ValueList (http://valuelist.sourceforge.net/)

[]'s
JL

polaco

Cara, procura por displaytag, ela vai te ajudar bastante com tables para a web, e já tem paginação.

vinicius_roc

Valew pessoal, dei uma lida achei muito interessante essa display tag library

porem não estou conseguindo ultilizar.

Baixei o bin
extrai ele
adicionei os 3 jar ao net beans (displaytag-1.2, displaytag-export-poi-1.2, displaytag-portlet-1.2)
coloquei ele no jsp:

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

então chamei minha lista, só para testar, sem formatar nada ainda, um passo de cada vez, hehe:

ai quando executo, recebo essa exception:

java.lang.ClassNotFoundException: org.apache.commons.lang.UnhandledException

Falta alguam coisa?

fiz algo errado?

segue o codigo da minha JSP:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
//taglib display
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>


<html:html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>MZ TI - Suporte</title>
    </head>
    <body>
        <table border="0">
            <tr>
                <td><form action="nUser.do">
                        <input type="submit" value="Novo usuario">    
                </form></td>
                <td><form action="/mz-ti/admin/suporte.jsp">
                        <input type="submit" value="Inicio">
                    </form></td>
                <td></td>                
            </tr>
        </table>
        //tabela que é exbida sem a taglib
        <table border ="0">
            <tr>
                <td align="center"><b>Nome</b></td>
                <td align="center"><b>Area</b></td>
                <td align="center"><b>Ramal</b></td>
                <td align="center"><b>Baia</b></td>
            </tr>
            <c:forEach var="user" items="${user}">
                <html:form action="/altUser.do" focus="user.nome">
                <tr>
                    <td  align="left">${user.nome}</td>
                    <td  align="left"><p align="center">${user.areaname}</p></td>
                    <td  align="left">${user.ramal}</td>
                    <td  align="left">${user.baia}</td>
                    <td>
                        <html:submit value="Alterar" property="btenviar"/>
                        <html:submit value="Excluir" property="btenviar"/>
                    </td>
                </tr>
                <html:hidden value="${user.id}" property="user.id"/>
                <html:hidden value="${user.nome}" property="user.nome"/>
                <html:hidden value="${user.area}" property="user.area"/>
                <html:hidden value="${user.ramal}" property="user.ramal"/>
                <html:hidden value="${user.baia}" property="user.baia"/>
                </html:form>
            </c:forEach>
        </table>        
        //tabela que estou tentando chamar com a taglib
        <display:table name="${user}" />        
    </body>
</html:html>
vinicius_roc

Descosiderem por favor

faltou eu adicionar os jar

commons-beanutils-1.8
commons-lang-2.4

Esta dando certo ^^

só falta descobrir como fazer a paginação

valew pessoal ;]

Mero_Aprendiz

vinicius_roc:

java.lang.ClassNotFoundException: org.apache.commons.lang.UnhandledException

Você tem o jar da commons-lang no classpath da sua aplicação?

[]'s
JL

vinicius_roc

Bom funcionou tudo perfeito muito obrigado a todos que me ajudaram

tenho uma ultima duvida.

como podem ver no codigo acima cada linha possuia um botão de alterar e excluir. pois eu fazia como se fosse um formulario.

Como posso estar fazendo isso agora?

Obrigado

polaco

Voce pode adicionar uma coluna com um link para a sua ação que vai excluir ou remover passando o id do seu objeto.

<display:table id="cidade" class="displaytag" name="requestScope.lista" pagesize="5" defaultsort="1" requestURI="/actionCidade.do?method=getList">
	<display:column property="id" title="ID" />
	<display:column property="nome" title="Nome" />
	<display:column property="estado.nome" title="Estado" />

	<display:column>
		<a href="actionCidade.do?method=edit&id=${cidade.id}">Editar</a>
	</display:column>

	<display:column>
		<a href="actionCidade.do?method=remove&id=${cidade.id}">Remover</a>
	</display:column>
</display:table>
Mero_Aprendiz

vinicius_roc:

//tabela que estou tentando chamar com a taglib <display:table name="${user}" /> </body>

Bem… Assim não é uma forma muito fácil de usar e de utilizar os recursos da DisplayTag.
Leitura obrigatória… rs!
http://hotwork.sourceforge.net/hotwork/manual/displaytag/displaytag-user-guide.html

Bom exemplo:
http://www.devx.com/webdev/10MinuteSolution/31020/0/page/2

[]'s
JL

vinicius_roc

ok

obrigado

darei uma lida

uma ultima duvida (por enquanto… hehe)

como faço para tranduzir? 154 items found, displaying 1 to 20.[First/Prev] 1, 2, 3, 4, 5, 6, 7, 8 [Next/Last]

obrigado

vinicius_roc
Maracuja:
displaytag_pt_BR.properties
#http://media.realmedia.com.br/RealMedia/ads/click_lx.ads/guj/forum/[telefone removido]/x04/rmlanetwork/090331_calhau_guj_pages_x04/120X600_INSTITUCIONAL_GUJ.gif/63393537373830653461323934646430
# PAGINACAO
#
basic.show.header=true
basic.msg.empty_list=<span class="pagebanner">N&atilde;o existem dados a serem exibidos.</span>

#paging.banner.placement=top
paging.banner.placement=both
paging.banner.group_size=5
paging.banner.include_first_last=true
paging.banner.page.separator=&nbsp;&nbsp;

paging.banner.item_name=item
paging.banner.items_name=itens
paging.banner.no_items_found=<br><span class="pagebanner">Nenhum(a) {0} encontrado(a).</span>
paging.banner.one_item_found=<br><span class="pagebanner">Um(a) {0} encontrado(a).</span>
paging.banner.all_items_found=<br><span class="pagebanner">{0} {1} encontrados(as), exibindo todos(as) {2}.</span>
paging.banner.some_items_found=<br><span class="pagebanner">{0} {1} encontrados(as), exibindo de {2} a {3}.</span>
paging.banner.page.link=<a href="{1}" title="Vai para a página {0}" class="link">{0}</a>

paging.banner.first.label=Primeira
paging.banner.last.label=&Uacute;ltima
paging.banner.next.label=Pr&oacute;xima
paging.banner.prev.label=Anterior

paging.banner.first=<br><br><span class="pagelinks"> {0}&nbsp;|&nbsp;<a href="{3}" class="link">Pr&oacute;ximos</a></span><br><br>
paging.banner.last=<br><br><span class="pagelinks"><a href="{2}" class="link">&nbsp;Anteriores</a>&nbsp;|&nbsp; {0} </span><br><br>
paging.banner.full=<br><br><span class="pagelinks"><a href="{2}" class="link">&nbsp;Anteriores</a>&nbsp;|&nbsp; {0} &nbsp;|&nbsp;<a href="{3}" class="link">Pr&oacute;ximos&nbsp;</a></span><br><br>

export.banner=<div class="exportlinks">Exportar: {0}</div>
export.csv=false
export.xml=false
export.excel=true
export.excel.filename=exportacao.xls
export.excel.link=<a href={0} class="paging">{0}</a>
export.decorated=true


css.tr.even=even
css.tr.odd=odd
#css.th.sorted
#css.th.ascending
#css.th.descending
css.table=table
#css.th.sortable

show obrigado

onde devo colocar esse arquivo? devo referencia-lo em algum lugar? Desculpa é que sou novo to aprendendo muita coisa agora.

Obrigado

vinicius_roc

Muito obrigado pela dica pessoal, gostei muito. Consegui fazer tudo direitinho e ficou muito com e da até para importar facil para excel.

Só tenho mais uma duvida.

Para formatar a tabela, com cores tamanho posições, imagens, etc… só com CSS mesmo?

Obrigado a atenção de todos.

thiago.correa

Dá para o usar o PaintBrush :lol:
Brincadeiras a parte só com css mesmo

JMan

displaytag_pt_BR.properties

#
# PAGINACAO
#
basic.show.header=true
basic.msg.empty_list=<span class="pagebanner">N&atilde;o existem dados a serem exibidos.</span>

#paging.banner.placement=top
paging.banner.placement=both
paging.banner.group_size=5
paging.banner.include_first_last=true
paging.banner.page.separator=&nbsp;&nbsp;

paging.banner.item_name=item
paging.banner.items_name=itens
paging.banner.no_items_found=<br><span class="pagebanner">Nenhum(a) {0} encontrado(a).</span>
paging.banner.one_item_found=<br><span class="pagebanner">Um(a) {0} encontrado(a).</span>
paging.banner.all_items_found=<br><span class="pagebanner">{0} {1} encontrados(as), exibindo todos(as) {2}.</span>
paging.banner.some_items_found=<br><span class="pagebanner">{0} {1} encontrados(as), exibindo de {2} a {3}.</span>
paging.banner.page.link=<a href="{1}" title="Vai para a página {0}" class="link">{0}</a>

paging.banner.first.label=Primeira
paging.banner.last.label=&Uacute;ltima
paging.banner.next.label=Pr&oacute;xima
paging.banner.prev.label=Anterior

paging.banner.first=<br><br><span class="pagelinks"> {0}&nbsp;|&nbsp;<a href="{3}" class="link">Pr&oacute;ximos</a></span><br><br>
paging.banner.last=<br><br><span class="pagelinks"><a href="{2}" class="link">&nbsp;Anteriores</a>&nbsp;|&nbsp; {0} </span><br><br>
paging.banner.full=<br><br><span class="pagelinks"><a href="{2}" class="link">&nbsp;Anteriores</a>&nbsp;|&nbsp; {0} &nbsp;|&nbsp;<a href="{3}" class="link">Pr&oacute;ximos&nbsp;</a></span><br><br>

export.banner=<div class="exportlinks">Exportar: {0}</div>
export.csv=false
export.xml=false
export.excel=true
export.excel.filename=exportacao.xls
export.excel.link=<a href={0} class="paging">{0}</a>
export.decorated=true


css.tr.even=even
css.tr.odd=odd
#css.th.sorted
#css.th.ascending
#css.th.descending
css.table=table
#css.th.sortable
JMan

Podes olhar em sua aplicação, no mesmo lugar onde vc encontra o displaytag.properties… pasta SRC do seu projeto… ou classes do seu web-inf.

[]'s

Criado 16 de junho de 2009
Ultima resposta 16 de jun. de 2009
Respostas 14
Participantes 5