Paginador com JSF

7 respostas
edvaldo.santiago

Boa noite pessoal…
Estou precisando de um help…
Alguem poderia me dizer como posso fazer uma lista com paginador usando o Myface!?!?!
Algum exemplo ou tutorial.

Valeu pela atenção…

Fui.
:smiley:

7 Respostas

edvaldo.santiago

Pessoal... boa noite...
Então eu fiz o exemplo do MyFaces... só que não rola paginação...
vou colocar o código para que olhem e por favor me mostrar qual a besteira que estou fazendo.....

A página carrega só que quando tento navegar ela não funciona.

Muito obrigado.

faces-config
<managed-bean>
		<description>agenda Teste</description>
		<managed-bean-name>agendaDB</managed-bean-name>
		<managed-bean-class>car.AgendaDB</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
MB
public String listaUser()throws SQLException {
		String result_lista = FALHA_LISTA;
		try {
			stm = getConn().createStatement();
			rs = stm.executeQuery("SELECT * FROM pessoa ");		
			listas = new ArrayList();
			while (rs.next()) {
				AgendaDB agenda = new AgendaDB();
				agenda.nome = rs.getString(1);				
				agenda.telefone = rs.getString(3);
				agenda.cidade = rs.getString(2);
				listas.add(agenda);
			}
			result_lista = SUCESSO_LISTA;
		} catch (SQLException e) {			
			System.err.println("Erro: " + e);
		}
		rs.close();
		stm.close();
		return result_lista;		
	}
E finalmente a página:
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

<html>
<link href="css/table.css" rel="stylesheet" type="text/css">
<body>
<f:view>
	<f:loadBundle basename="car.telas" var="msgs"/>
	<h1><h:outputText value="#{msgs.NomeTela}" /></h1>
	<h:form>
		<h:panelGroup id="body">
		 		<t:dataTable id="data"
					 value="#{agendaDB.listas}"
					 var="itens" 
					 preserveDataModel="true"
					 styleClass="teste" 
					 border="1" 
					 cellpadding="0" 
					 cellspacing="0"
					 rows="5">			
					<h:column>
						<f:facet name="header">
							<h:outputText value="Nome" />
						</f:facet>
						<h:outputText value="#{itens.nome}"/>
					</h:column>
					<h:column>
						<f:facet name="header">
							<h:outputText value="Cidade" />
						</f:facet>
						<h:outputText value="#{itens.cidade}" />
					</h:column>
					<h:column>
						<f:facet name="header">
							<h:outputText value="Endereço" />
						</f:facet>
						<h:outputText value="#{itens.endereco}" />
					</h:column>
					<h:column>
						<f:facet name="header">
						<h:outputText value=" " />
						</f:facet>
						<h:commandLink action="#{agendaDB.detalhe}" immediate="true">
			       			<f:param name="nome" value="#{itens.nome}"/>
			       			<f:param name="cidade" value="#{itens.cidade}"/>
			       			<h:outputText value="detalhe" />
		    			 </h:commandLink>										
		    		</h:column>
				</t:dataTable>
			<h:panelGrid columns="1">
				<t:dataScroller id="scroll_1"
                            for="data"
                            fastStep="5"
                            pageCountVar="pageCount"
                            pageIndexVar="pageIndex"
                            paginator="true"
                            paginatorMaxPages="5"
                            paginatorTableClass="paginator"
                            paginatorActiveColumnStyle="font-weight:bold;"
                            >
                  <f:facet name="first" >
                            <h:graphicImage url="imagens/arrow-first.gif" />
                        </f:facet>
                        <f:facet name="last">
                            <h:graphicImage url="imagens/arrow-last.gif" />
                        </f:facet>
                        <f:facet name="previous">
                            <h:graphicImage url="imagens/arrow-previous.gif" />
                        </f:facet>
                        <f:facet name="next">
                            <h:graphicImage url="imagens/arrow-next.gif" />
                        </f:facet>
                        <f:facet name="fastforward">
                            <h:graphicImage url="imagens/arrow-ff.gif" />
                        </f:facet>
                        <f:facet name="fastrewind">
                            <h:graphicImage url="imagens/arrow-fr.gif"  />
                        </f:facet>
                  </t:dataScroller>
                  <t:dataScroller id="scroll_2"
                            for="data"
                            pageCountVar="pageCount"
                            pageIndexVar="pageIndex"
                            >
                        <h:outputFormat value="#{msgs['dataScroller_pages']}">
                            <f:param value="#{pageIndex}" />
                            <f:param value="#{pageCount}" />
                        </h:outputFormat>
                    </t:dataScroller>
			</h:panelGrid>
	 	</h:panelGroup>
		<h:outputLink value="index.jsf">
			<f:verbatim>voltar</f:verbatim>
		</h:outputLink>
	</h:form>
</f:view>
</body>
</html>
edvaldo.santiago

Galera Help … Please!!! :oops: :cry: :oops:

afamorim

Da alguma mensagem de erro?

o que acontece na página?

Anderson_Schmidt

olá,

De forma resumida, a paginação pode ser feita assim:

<h:dataTable id=“dados” rows=“10” … >

</h:dataTable>

<t:dataScroller for=“dados”> // facets

</t:dataScroller>

Não tem segredo. Isso aí já deve renderizar os controles de paginação. Tome cuidado pra não esquecer o atributo “rows” nos dataTable. Sem ele, ocorre uma divisão por zero.

PS: vc está usando “h:dataTable” com “t:column”. Recomendo usar o prefixo “h” ou “t” para os dois casos.

Flws!

edvaldo.santiago

Valeu galera… muito obrigado pela ajuda…
Agora a parada tá funcionando…
Faltava tb mudar para “false” a propriedade

preserveDataModel=“false”
da
<t:dataTable

Fiz isso e agora tá funcionando…

Valeu… :smiley: :smiley: :D>

danielvc

Estou tendo problema quanto a implementação disso…

está dando o seguinte erro:

Error getting property ‘listas’ from bean of type AgendaDB

Porém, minha property listas está pública e statica… o que fazer?

francofabio

sua propriedade listas deve ter um get ou se getListas(), por se tratar de um ValueBinding…quando a propriedade precisar ser alterada eh necessário ter tb um set para a propriedade (que não eh o seu caso)…

Criado 19 de novembro de 2006
Ultima resposta 11 de jan. de 2007
Respostas 7
Participantes 5