paginação datagrid não funciona qdo coloco <f:event>

0 respostas
T
Boa tarde senhores. Tenho um datagrid que é preenchido pelo banco de dados, os parametros utilizados sao enviados pela pagina anterior, e passo esses valores pela URL. A pagina 1 ele traz normal, mas as outras paginas não funcionam, quando clico em alguma pagina nada acontece. Notei que o erro acontece quando coloco o codigo:
<f:metadata>		
		<f:viewParam name="codDep" value="#{cGradeMostruario.codigoDepartamento}" />
		<f:viewParam name="departamento" value="#{cGradeMostruario.descricaoDepartamento}" />
		<f:viewParam name="codSec" value="#{cGradeMostruario.codigoSecao}" />
		<f:viewParam name="secao" value="#{cGradeMostruario.descricaoSecao}" />	
		<f:viewParam name="codGru" value="#{cGradeMostruario.codigoGrupo}" />
		<f:viewParam name="grupo" value="#{cGradeMostruario.descricaoGrupo}" />		
   		<f:event listener="#{cGradeMostruario.init}" type="preRenderView"></f:event>
          </f:metadata>

Criei um array preenchido 'na mao' para fazer os testes (pois com o array antigo nao funcionaria ja que preciso dos parametros) e ele funciona normalmente, e qdo coloco este codigo nao funciona mais.

Alguem saberia poderia me ajudar? Estou com duvidas quanto ao local correto para isso, vi na internet que nao se coloca esse codigo no template principal...
o erro ocorre apenas quando coloco o 'f:event' se colocar todo o resto funciona (mas ae nao chama o init()).
segue os codigos:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">
	<f:metadata>
		<f:viewParam name="codDep" value="#{cMenu.codigoDepartamento}" />
		<f:viewParam name="departamento" value="#{cMenu.descricaoDepartamento}" />
		<f:viewParam name="codSec" value="#{cMenu.codigoSecao}" />
		<f:viewParam name="secao" value="#{cMenu.descricaoSecao}" />
		<f:event listener="#{cMenu.init}" type="preRenderView"></f:event>
		
		<f:viewParam name="codDep" value="#{cGradeMostruario.codigoDepartamento}" />
		<f:viewParam name="departamento" value="#{cGradeMostruario.descricaoDepartamento}" />
		<f:viewParam name="codSec" value="#{cGradeMostruario.codigoSecao}" />
		<f:viewParam name="secao" value="#{cGradeMostruario.descricaoSecao}" />	
		<f:viewParam name="codGru" value="#{cGradeMostruario.codigoGrupo}" />
		<f:viewParam name="grupo" value="#{cGradeMostruario.descricaoGrupo}" />		
   		<f:event listener="#{cGradeMostruario.init}" type="preRenderView"></f:event>				
   	</f:metadata>	
	<ui:composition template="/templates/depart-produtos.xhtml">
		.
                .
                .
		<ui:define name="topo">
			<div class="alldivtop">
	  			<ui:include src="/general/topo.xhtml" />
	   		</div>
		</ui:define>
		<ui:define name="menu">
			<div class="alldivmenu">
	 			<ui:include src="/general/menu-home.xhtml" />
	   		</div>
		</ui:define>
		<ui:define name="vitrine">
			<div class="alldivvitrine">
	  			<ui:include src="/general/vitrine-departamento.xhtml" />
	   		</div>
		</ui:define>
	
		<ui:define name="content">
			<div class="alldivcontent">
	 			<ui:include src="/general/content-departamento.xhtml" />
	 		</div>	
		</ui:define>
		<ui:define name="footer">
			<div class="alldivfooter">
				<ui:include src="/general/footer.xhtml" />
	 		</div>
		</ui:define>
	</ui:composition>
</html>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"  >
	<ui:composition>
			<p:dataGrid  columns="3" var="pro" value="#{cGradeMostruario.listaProdutos}" rows="18" paginator="true" emptyMessage="Não foi encontrado itens para este nível">
					<div class="divitensprod" >
						<p:column>
						<h:link outcome="detalhes.jsf" >
								<f:param name="codigo" value="#{pro.codigoplu}" />
								<f:param name="produto" value="#{pro}" />
								<h:graphicImage value="/image/#{config.imagens_produtos}/#{pro.imagem}" styleClass="imgProdPagina"  />
						</h:link>
						</p:column>
						<h:panelGrid columns="1" cellpadding="0" cellspacing="2" styleClass="eachcarrcel"  columnClasses="styleColum" rowClasses="styleRows" >
							<p:rating value="#{pro.classificacao}" disabled="true" />
							<h:link styleClass="descprodofert" outcome="detalhes.jsf">
								<f:param name="codigo" value="#{pro.codigoplu}" />
								<f:param name="produto" value="#{pro}" />
									<h:outputText value="#{pro.descricao}" />
							</h:link>
							<h:panelGroup styleClass="precodeofert" >
								<h:outputText value="De:   "/>
								<h:outputText value="R$ #{pro.vlpreco}" />
							</h:panelGroup>
							<h:panelGroup styleClass="precoporofert" >
								<h:outputText value="Por:   " />
								<h:outputText value="R$ #{pro.vlpreco}" />
							</h:panelGroup>
							<h:panelGroup styleClass="parcelaofert" >
								<h:outputText value="ou:   " />
								<h:outputText value=" 12 X R$ #{pro.vlpreco} - sem juros no cartão" />
							</h:panelGroup>
							<h:panelGroup styleClass="carprecopar" >
								<h:link styleClass="linkmais" outcome="detalhes.jsf">
									<h:graphicImage library="imagens" name="mais.gif" styleClass="imgmais" >
									<h:outputText value="&nbsp;&nbsp;#{pro.descridpto}" styleClass="linkmaisdpto"  /></h:graphicImage>	
									<f:param name="coddpto" value="#{pro.coddpto}" />
									<f:param name="produto" value="#{pro}" />
								</h:link>		
							</h:panelGroup>
						</h:panelGrid>	
					</div>
			</p:dataGrid>
	</ui:composition>
</html>
@ManagedBean
@RequestScoped
public class CGradeMostruario
{
.
.
.
 public CGradeMostruario()
    {
	produtos = new Produtos(new Pool("url_db_central"));
	
    }

public void init(ComponentSystemEvent event)
    {
//implementação que popula os valores dos produtos
.
.
.
}

Obrigado, desde já.

Criado 5 de outubro de 2012
Respostas 0
Participantes 1