Problemas com commandlink no rich:dataTable com rich:DataScroller

3 respostas
P

Parece ser o mesmo problema do tópico não resolvido http://www.guj.com.br/posts/list/121608.java#657992 mas com uma variação:

Utilizando o rich:datascroller para paginação de tabelas, o link funciona na primeira página. Nas demais ele dá um refresh na página e a tabela “pula” para a primeira página sem invocar o método do link. O bizarro é que na primeira página o link funiciona perfeitamente bem. Testei em todas as tabelas do sistema e ele apresenta o mesmo comportamento para todas.

Estou populando a tabela com uma java.util.List. Já tentei com javax.faces.model.DataModel e não adiantou.

Obrigado pela ajuda.

O código é:

<rich:dataTable id="tabelaAtividade" colunms="3"
				columnsWidth=" , ,50px" value="#{atividadeBean.listaAtividade}"
				var="atividade" styleClass="tabela"
				rowClasses="tabela-linha1,tabela-linha2"
				headerClass="tabela-cabecalho" rows="15">

				<rich:column id="column1" sortBy="#{atividade.codigo}">
					<f:facet name="header">
						<h:outputText value="Código"></h:outputText>
					</f:facet>
					<h:outputText id="id_atividade" value="#{atividade.codigo}"></h:outputText>
				</rich:column>

				<rich:column id="column2" sortBy="#{atividade.descricao}">
					<f:facet name="header">
						<h:outputText value="Descrição da atividade"></h:outputText>
					</f:facet>
					<h:outputText id="descricao" value="#{atividade.descricao}"></h:outputText>
				</rich:column>

				<rich:column id="column3">
					<f:facet name="header">
						<h:outputText value="Ação" />
					</f:facet>

					<h:commandLink styleClass="tabela-acoes" type="submit"
						action="#{atividadeBean.exibirAtividade}" title="Consultar">
						<f:setPropertyActionListener target="#{atividadeBean.atividade}"
							value="#{atividade}" />
						<f:setPropertyActionListener target="#{menuBean.opcao}"
							value="#{menuBean.opcaoConsulta}" />
						<h:graphicImage url="/imagens/icone-consultar.gif" alt="Consultar" />
					</h:commandLink>

				</rich:column>
			</rich:dataTable>

			<rich:datascroller for="tabelaAtividade" maxPages="10"
				pagesVar="testeRequest">
				<f:facet name="first">
					<h:graphicImage value="/imagens/icone-paginacao-primeiro.gif" />
				</f:facet>
				<f:facet name="first_disabled">
					<h:graphicImage value="/imagens/icone-paginacao-branco.gif" />
				</f:facet>
				<f:facet name="fastrewind">
					<h:outputText value="" />
				</f:facet>
				<f:facet name="fastrewind_disabled">
					<h:outputText value="" />
				</f:facet>
				<f:facet name="previous">
					<h:graphicImage value="/imagens/icone-paginacao-anterior.gif" />
				</f:facet>
				<f:facet name="previous_disabled">
					<h:graphicImage value="/imagens/icone-paginacao-branco.gif" />
				</f:facet>
				<f:facet name="next">
					<h:graphicImage value="/imagens/icone-paginacao-proximo.gif" />
				</f:facet>
				<f:facet name="next_disabled">
					<h:graphicImage value="/imagens/icone-paginacao-branco.gif" />
				</f:facet>
				<f:facet name="fastforward_disabled">
					<h:outputText value="" />
				</f:facet>
				<f:facet name="fastforward">
					<h:outputText value="" />
				</f:facet>
				<f:facet name="last">
					<h:graphicImage value="/imagens/icone-paginacao-ultimo.gif" />
				</f:facet>
				<f:facet name="last_disabled">
					<h:graphicImage value="/imagens/icone-paginacao-branco.gif" />
				</f:facet>
			</rich:datascroller>

O backBean é:

public List<Atividade> getListaAtividade() {
		return listaAtividade;
	}

	public void setListaAtividade(List<Atividade> listaAtividade) {
		this.listaAtividade = listaAtividade;
	}

	public String exibirAtividade() {
		return "cadastroAtividade";
	}

3 Respostas

P

web.xml
facelets.BUILD_BEFORE_RESTORE = false

M

um palpite, coloca o atributo immediate=“true” no commandLink

P

Obrigado pela dica.
O que resolveu meu problema foi setar o atributo facelets.BUILD_BEFORE_RESTORE = false no web.xml e voltou a funcionar.
Mesmo assim obrigado

Criado 25 de junho de 2010
Ultima resposta 26 de jun. de 2010
Respostas 3
Participantes 2