Boa tarde,
Pessoal, tenho CRUD que está funcionando corretamente, porém estou tendo uma pendencia que é a seguinte:
Ao adicionar um Produto vai normal, só que na seguencia ao tentar inserir outro ele não executa nada! não me dá erro, é como se não chamasse o metodo de adição, pois clico varias vezes e ele não gera nem a query no console.
E ao dar um refresh na tela ai sim volta a inserir um novo.
Qual o escopo do ManagedBean que você está utilizando. O botão dispara um evento pelo action ou actionListener?
Ace
Cara to trabalhando com o ViewScoped
estou chamando pela action
F
fdcarli
verifique no commandoButton do salvar quais os componentes vc está atualizando, na propriedade update, cuide os componente que estão ali…
dependendo dos componente que vc da update ele para de funcionar, já passei por isso, ai eu atualizo somente o necessário.
qualquer coisas manda o código da página ai…
[]´s
chayimamaral
Meu, não respondendo sua dúvida, mas dando um toque : estou desenvolvendo com o Glassfish (que realmente fica muitíssimo mais pesado que o TomCat), mas eu ganho em controle do aplicativo.
TODO e QUALQUER erro o Glassfish te reporta o local exato onde ocorreu; inclusive se for na página xhtml, no código java, no MB, tudo. Se tiver qualquer errinho, dependendo da situação, ele monta uma parte da página e te mostra o que ocorreu no log.
É muito produtivo isto, para voce saber exatamente o que está ocorrendo se não tiver condições de debugar, por exemplo.
Ace
Vlw pelo toque man, vou repensar para meus proximos projetos…
Ace
fdcarli:
verifique no commandoButton do salvar quais os componentes vc está atualizando, na propriedade update, cuide os componente que estão ali…
dependendo dos componente que vc da update ele para de funcionar, já passei por isso, ai eu atualizo somente o necessário.
qualquer coisas manda o código da página ai…
[]´s
MB
@ViewScoped@ManagedBeanpublicclassProdutoBean{privateProdutoproduto=newProduto();privateList<Produto>produtos;privateAutorautor=newAutor();//construtorpublicProdutoBean(){//inicilizar os objetos que vão ser setados na view.this.produto=newProduto();this.produto.setAutor(newAutor());}//se o id for nulo então salva, se não, atualizapublicvoidgrava(){Dao<Produto>dao=newDao<Produto>(Produto.class);if(produto.getId()==null){dao.salva(produto);}else{dao.atualiza(produto);}this.autor=newAutor();this.produto=newProduto();this.produtos=dao.listaTudo();}
XHTML
<?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"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:f="http://java.sun.com/jsf/core"xmlns:h="http://java.sun.com/jsf/html"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:p="http://primefaces.prime.com.tr/ui"><ui:compositiontemplate="/_template.xhtml"><ui:definename="corpo"><h2>Adiciona Produtos</h2><h:formid="formAdicao"><p:tabView><p:tabtitle="Dados do Produto"><fieldset><legend>Dados do Produto</legend><h:outputLabelvalue="ISBN:"for="code"/><p:inputTextvalue="#{produtoBean.produto.code}"id="code"/><h:outputLabelvalue="Titulo:"for="titulo"/><p:inputTextvalue="#{produtoBean.produto.titulo}"id="titulo"/><h:outputLabelvalue="Genero:"for="genero"/><p:inputTextvalue="#{produtoBean.produto.genero}"id="genero"/><h:outputLabelvalue="Preco:"for="preco"/><p:inputTextvalue="#{produtoBean.produto.preco}"id="preco"/><h:outputLabelvalue="Peso:"for="peso"/><p:inputTextvalue="#{produtoBean.produto.peso}"id="peso"/><h:commandButtonvalue="Cancelar"action="#{produtoBean.cancelaEdicao}"rendered="#{produtoBean.produto.id != null}"><f:ajaxrender="@form"/></h:commandButton></fieldset></p:tab><p:tabtitle="Dados do Autor"><fieldset><legend>Dados do Autor</legend><h:outputLabelvalue="Nome:"for="nome"/><p:inputTextvalue="#{produtoBean.produto.autor.nome}"id="nome"/><h:outputLabelvalue="Sobre:"for="sobre"/><p:editorvalue="#{produtoBean.produto.autor.sobre}"id="sobre"/><h:commandButtonaction="#{produtoBean.grava}"value="Gravar"><f:ajaxexecute="@form"render="@form :formLista"/></h:commandButton></fieldset></p:tab></p:tabView></h:form><h2>Listagem</h2><h:formid="formLista"><p:dataTablevalue="#{produtoBean.produtos}"var="p"paginator="true"rows="5"><p:columnheaderText="ISBN">
#{p.code}
</p:column><p:columnheaderText="Titulo">
#{p.titulo}
</p:column><p:columnheaderText="Genero">
#{p.genero}
</p:column><p:columnheaderText="Preco"><h:outputTextvalue="#{p.preco}"><f:convertNumberpattern="R$ #0.00"/></h:outputText></p:column><p:columnheaderText="Peso">
#{p.peso}
</p:column><p:columnheaderText="Autor">
#{p.autor.nome}
</p:column><p:columnheaderText="Sobre"><h:outputTextvalue="#{p.autor.sobre}"escape="false"/></p:column><p:columnheaderText="Alterar"><h:commandLink><h:graphicImagelibrary="imagens"name="modify.png"styleClass="img_ico"/><f:setPropertyActionListenervalue="#{p}"target="#{produtoBean.produto}"><f:ajaxexecute="@form"render="@form :formAdicao"/></f:setPropertyActionListener></h:commandLink></p:column><p:columnheaderText="Remover"><h:commandLinkonclick="return confirm('Deseja Realmente Excluir?')"action="#{produtoBean.remove(p)}"><f:ajaxrender="@form"><h:graphicImagelibrary="imagens"name="delete.png"styleClass="img_ico"/></f:ajax></h:commandLink></p:column></p:dataTable></h:form></ui:define></ui:composition></html>
Ace
Ainda não rolou. :?
Ace
Galera depois de ter voltado a ver esta pendencia que havia deixado de lado, não sei se é a forma mais correta mas consegui da seguinte maneira: