Javafree
 Forum   Topics   Author   Post 
Java Básico Datatable edit do primefaces não envia valor atualizado para edição. sounobre Boa tarde pessoal! Estou tentando realizar um update através do datatable edit do primefaces, porém não envia o valor do inputtext atualizado para o bean. O processo ocorre quase que corretamente, o valor é enviado e atualizado, porém o valor antigo, já carregado na datatable. alguém pode me ajudar nessa listaProduto.xhtml [code]<!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:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"> <ui:composition template= "template.xhtml"> <ui:define name="conteudo" > <h:form id="form"> <p:growl id="msgs" showDetail="true"/> <p:dataTable var="prod" value="#{pBean.listaproduto}" editable="true" style="margin-bottom:20px" id="listaproduto"> <p:ajax event="rowEdit" listener="#{pBean.onRowEdit}" update=":form:msgs" /> <p:ajax event="rowEditCancel" listener="#{pBean.onRowCancel}" update=":form:msgs" /> <p:column headerText="Id"> <h:outputText value="#{prod.id}"/> </p:column> <p:column headerText="Nome"> <p:cellEditor> <f:facet name="output"><h:outputText value="#{prod.nome}"/></f:facet> <f:facet name="input"><p:inputText value="#{prod.nome}" style="width:100%"/></f:facet> </p:cellEditor> </p:column> <p:column headerText="Preço"> <p:cellEditor> <f:facet name="output"><h:outputText value="#{prod.preco}"/></f:facet> <f:facet name="input"><p:inputText value="#{prod.preco}" style="width:100%"/></f:facet> </p:cellEditor> </p:column> <p:column headerText="Fornecedor"> <p:cellEditor> <f:facet name="output"><h:outputText value="#{prod.fornecedor}"/></f:facet> <f:facet name="input"><p:inputText value="#{prod.fornecedor}" style="width:100%"/></f:facet> </p:cellEditor> </p:column> <p:column headerText="Categoria"> <p:cellEditor> <f:facet name="output"><h:outputText value="#{prod.categoria}"/></f:facet> <f:facet name="input"><p:inputText value="#{prod.categoria}" style="width:100%"/></f:facet> </p:cellEditor> </p:column> <p:column style="width:32px"> <p:rowEditor /> </p:column> </p:dataTable> </h:form> </ui:define> </ui:composition> </html>[/code] ProdutoBean [code]package manager; import java.util.List; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import org.primefaces.event.CellEditEvent; import org.primefaces.event.RowEditEvent; import br.com.estoque.model.Produto; import br.com.estoque.persistence.ProdutoDao; @ManagedBean(name="pBean") @ViewScoped public class ProdutoBean { private Produto produto; private List<Produto> listaproduto; public ProdutoBean() { produto = new Produto(); } public Produto getProduto() { return produto; } public void setProduto(Produto produto) { this.produto = produto; } public List<Produto> getListaproduto() { try{ listaproduto = new ProdutoDao().listar(); }catch(Exception e){ e.printStackTrace(); } return listaproduto; } public void setListaproduto(List<Produto> listaproduto) { this.listaproduto = listaproduto; } public String cadastrar() { FacesContext fc = FacesContext.getCurrentInstance(); try{ new ProdutoDao().cadastrar(produto); fc.addMessage("formproduto", new FacesMessage(produto.getNome() + "produto cadastrado com sucesso")); produto = new Produto(); }catch(Exception e){ e.printStackTrace(); fc.addMessage("formproduto", new FacesMessage(produto.getNome() + "Não cadastrado")); } return null; } public void onRowEdit(RowEditEvent event) { Produto produto = ((Produto) event.getObject()); new ProdutoDao().editar(produto); } public void onRowCancel(RowEditEvent event) { FacesMessage msg = new FacesMessage("Edit Cancelled"); FacesContext.getCurrentInstance().addMessage(null, msg); } } [/code]
Goto page 1