Duvida no uso datatable do jsf contra primefaces?

1 resposta
P

Olá,

fiz a substittuição do datatable do jsf pelo primefaces mais não executa o metodo
lista mais com datatable do jsf funciona o que está errado .

abs

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui">
<ui:composition template="/templates/interna.xhtml">
	<ui:define name="titulo">
    	#{msg.cheque_titulo}
	</ui:define>

	<ui:define name="corpo">

		<h:form id="idiomas">
			<ui:repeat value="${contextoBean.idiomas}" var="idioma">
				<h:commandLink action="#{contextoBean.setIdiomaUsuario(idioma)}">
					<h:graphicImage library="imagens" name="bandeira_#{idioma}.png"
						title="#{msg['idioma_'.concat(idioma)]}" />
				</h:commandLink>
			</ui:repeat>
		</h:form>

		<h:messages id="mensagem" />

		<h:form id="edicao">
			<h:panelGrid columns="2">
				<h:outputLabel value="#{msg.cheque_numero_inicial}"
					for="chequeInicial" />
				<h:inputText id="chequeInicial" value="#{chequeBean.chequeInicial}"
					maxlength="6" size="6" />
				<h:outputLabel value="#{msg.cheque_numero_final}" for="chequeFinal" />
				<h:inputText id="chequeFinal" value="#{chequeBean.chequeFinal}"
					maxlength="6" size="6" />
				<h:commandButton value="#{msg.cheque_botao_salvar}"
					action="#{chequeBean.salvar}">
					<f:ajax execute="@form" render=":listagem :edicao" />
				</h:commandButton>
			</h:panelGrid>
		</h:form>

		<h:form id="listagem">
		<!--
			<h:dataTable value="#{chequeBean.lista}" var="cheque"
				rendered="#{!empty chequeBean.lista}" rows="5" >
			-->
				
				 
				<p:dataTable 
			style="height: 200px"
			scrollable="false" 
			value="#{chequeBean.lista}"
			var="cheque" 
			rowIndexVar="index" 
			rows="4"
			paginator="true"
			>
			 
		
				<h:column>
					<f:facet name="header">#{msg.cheque_coluna_cheque}</f:facet>
					<h:outputText value="#{cheque.chequeId.cheque}" />
				</h:column>
			</p:dataTable>
			
		</h:form>

	</ui:define>
</ui:composition>
</html>
@ManagedBean(name="chequeBean")
@RequestScoped
public class ChequeBean {

	private Cheque				selecionado	= new Cheque();
	private List<Cheque>	lista				= null;
	private Integer				chequeInicial;
	private Integer				chequeFinal;

	public void salvar() {
		FacesContext context = FacesContext.getCurrentInstance();
		ContextoBean contextoBean = ContextoUtil.getContextoBean();
		Conta conta = contextoBean.getContaAtiva();
		
		int totalCheques = 0;
		if (this.chequeInicial == null || this.chequeFinal == null) {
			String texto = MensagemUtil.getMensagem("cheque_erro_sequencia");
			FacesMessage msg = new FacesMessage(texto);
			context.addMessage(null, msg);
		} else if (this.chequeFinal.intValue() < this.chequeInicial.intValue()) {
			String texto = MensagemUtil.getMensagem("cheque_erro_inicial_final", this.chequeInicial, this.chequeFinal);
			FacesMessage msg = new FacesMessage(texto);
			context.addMessage(null, msg);
		} else {
			ChequeRN chequeRN = new ChequeRN();
			totalCheques = chequeRN.salvarSequencia(conta, this.chequeInicial, this.chequeFinal);
			String texto = MensagemUtil.getMensagem("cheque_info_cadastro", this.chequeFinal, totalCheques);
			FacesMessage msg = new FacesMessage(texto);
			context.addMessage(null, msg);
			this.lista = null;
		}
	}

	public void excluir() {
		ChequeRN chequeRN = new ChequeRN();
		try {
			chequeRN.excluir(this.selecionado);
		} catch (RNException e) {
			FacesContext context = FacesContext.getCurrentInstance();
			String texto = MensagemUtil.getMensagem("cheque_erro_excluir");
			FacesMessage msg = new FacesMessage(texto);
			msg.setSeverity(FacesMessage.SEVERITY_WARN);
			context.addMessage(null, msg);
		}
		this.lista = null;
	}

	public void cancelar() {
		ChequeRN chequeRN = new ChequeRN();
		try {
			chequeRN.cancelarCheque(this.selecionado);
		} catch (RNException e) {
			FacesContext context = FacesContext.getCurrentInstance();
			String texto = MensagemUtil.getMensagem("cheque_erro_cancelar");
			FacesMessage msg = new FacesMessage(texto);
			msg.setSeverity(FacesMessage.SEVERITY_WARN);
			context.addMessage(null, msg);
		}
		this.lista = null;
	}

	public List<Cheque> getLista() {
		if (this.lista == null) {
			ContextoBean contextoBean = ContextoUtil.getContextoBean();
			Conta conta = contextoBean.getContaAtiva();

			ChequeRN chequeRN = new ChequeRN();
			this.lista = chequeRN.listar(conta);
		}
		return this.lista;
	}

	public Cheque getSelecionado() {
		return selecionado;
	}

	public void setSelecionado(Cheque selecionado) {
		this.selecionado = selecionado;
	}

	public Integer getChequeInicial() {
		return chequeInicial;
	}

	public void setChequeInicial(Integer chequeInicial) {
		this.chequeInicial = chequeInicial;
	}

	public Integer getChequeFinal() {
		return chequeFinal;
	}

	public void setChequeFinal(Integer chequeFinal) {
		this.chequeFinal = chequeFinal;
	}
}

1 Resposta

xxabxx

Olá, bom dia,
tenta inserir o código abaixo e ve se funciona.
só altera o #"{cheque.idCheque}" pois nao sei se existe esse atributo "idCheque na sua classe Bean.

<h:form prependId="false">
                    <p:dataTable id="tabela" var="cheque" value="#{chequeBean.lista}"> //chequeBean = sua classe controller, lista = seu metodo de retornar a lista
                       
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Cheque"/>
                            </f:facet>
                            <h:outputText value="#{cheque.idCheque}" /> //cheque = nome da classe, idCheque = uma variavel do seu bean... não sei se esta existe
                        </p:column>
                        <p:column>
                      
                    </p:dataTable>
                </h:form>
Criado 15 de fevereiro de 2011
Ultima resposta 13 de mar. de 2012
Respostas 1
Participantes 2