Duvida sobre RichFaces

1 resposta
Jorge_Almeida

Seguinte pessoal, tenho uma pagina que exibe dados num dataTable. Esse componente possui um dataScroller, todos eles fornecidos pelo RichFaces.

Primeiro tenho o link : <rich:menuItem value=“Listar” action="#{emendaBean.listEmendas}"></rich:menuItem>
Que popula uma lista de entidades e redireciona para a pagina :

<h:form id="emendas">
<rich:dataTable id="emendasTable" value="#{emendaBean.emendas}" var="emenda" rows="2" captionStyle="font-size: 0.95em; font-style:italic" style="width: 90%;" align="center">         

    <rich:column>
	...minhas colunas...
    </rich:column>
		           
	
     <f:facet name="footer">
<rich:datascroller id="emendasDataScroller"></rich:datascroller>
       </f:facet>	        
</rich:dataTable>
</h:form>

Meu managed bean eh configurado como request scope:

<managed-bean>
	<managed-bean-name>emendaBean</managed-bean-name>
	<managed-bean-class>br.gov.sc.alesc.web.EmendaBean</managed-bean-class>
	<managed-bean-scope>request</managed-bean-scope>
</managed-bean>

Quando eu executo dessa forma, meu dataScroller nao navega/pagina ! Nao tem jeito. Depois de algumas tentativas e visitas em foruns, surgiu uma ideia estranha de fazer isso:

<managed-bean>
	<managed-bean-name>emendaBean</managed-bean-name>
	<managed-bean-class>br.gov.sc.alesc.web.EmendaBean</managed-bean-class>
	<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

Mudei o escopo para sessao e o dataScroller funcionou! Alguem teria como me dizer o porque? Manter o managed bean na sessao eh uma boa pratica nesse caso, isso nao vai sobrecarregar o servidor?

1 Resposta

felipempantoja

Cara, não sei pq mas aqui o dataScroller também é meio bugado, as vezes ele parava de funcionar quando na mesma tela eu abria um modalPanel por exemplo, e depois disso, só atualizando a tela pro dataScroller funcionar, aí cheguei a conclusão que ele precisava ser re-renderizado a cada ação na tela pra funcionar, então uso ele agora da seguinte forma:

<rich:dataScroller id=“dsTeste” reRender=“dsTeste”/>

Aí, independente do que eu fizer na tela, quando eu acioná-lo, ele se auto-renderiza e funciona. :smiley:
Meio que uma gambiarra mas a única solução que achei pra esse “possível” bug do componente.

Faz esse teste e diz se funcionou kra.

Ahh… nunca uso nenhum managed bean como session, só request. :smiley:

Criado 15 de julho de 2008
Ultima resposta 15 de jul. de 2008
Respostas 1
Participantes 2