[RESOLVIDO] editar linha da linha selecionada na <p:dataTable> no <p:dialog /> jsf primefaces
5 respostas
alexwebsp
Bom dia !
Não estou conseguindo enviar os dados de uma linha que selecionei através de um botão com o <p:commandButton/> do <p:dataTable> para o <p:dialog /> para que eu possa editar.
<h:formid="formdatatable"><p:panel><p:dataTableid="dattusuarios"var="users"value="#{usuarioBean.user}"style="text-align:center"paginator="true"rows="10"rowKey="#{users.usuCodigo}"><f:facetname="header">TabeladeUsuarios</f:facet><p:columnheaderText="Código"style="width:8%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuCodigo}"/></f:facet><f:facetname="input"><p:passwordvalue="#{users.usuCodigo}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Nome do Usuário"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuNome}"/></f:facet><f:facetname="input"><p:inputTextvalue="#{users.usuNome}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Tipo de Usuário"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuTipoUsuario}"align="center"/></f:facet><f:facetname="input"><p:inputTextvalue="#{users.usuTipoUsuario}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Senha"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuSenha}"/></f:facet><f:facetname="input"><p:passwordvalue="#{users.usuSenha}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Editar"style="width:5%"><p:commandButtononclick="confirmationEdit.show()"icon="ui-icon-document-b"action="#{usuarioBean.onList}"><f:setPropertyActionListenervalue="#{users.usuCodigo}"target="#{usuarioBean.parametro}"/></p:commandButton></p:column><p:columnheaderText="Excluir"style="width:5%"><p:commandButtonaction="#{usuarioBean.onCancel}"icon="ui-icon-trash"onclick="confirmation.show()"><f:paramvalue="#{users.usuCodigo}"name="usuId"/></p:commandButton></p:column></p:dataTable></p:panel ></h:form><p:dialogheader="Edição do Usuário"widgetVar="confirmationEdit"resizable="false"id="usuDialog"showEffect="fade"hideEffect="explode"modal="true"><h:panelGridid="display"columns ="2"><h:outputLabelvalue="Código do Usuário : "/><h:outputLabelvalue="#{usuarioBean.painel.usuCodigo}"/><h:outputLabelvalue="Nome do Usuário : "/><p:inputTextvalue="#{usuarioBean.painel.usuNome}"style="width:100%"required="true"/><h:outputLabelvalue="Tipo de Usuário : "/><p:inputTextvalue=""style="width:100%"required="true"requiredMessage="Digite o tipo de usuário!"/><h:outputLabelvalue="Senha : "/><p:passwordvalue=""style="width:100%"required="true"feedback="true"promptLabel="Por favor, Digite a senha"weakLabel="Fraco"goodLabel="Boa"strongLabel="Forte"requiredMessage="Digite a senha de usuário!"/><p:commandButtonvalue="Alterar"icon="ui-icon-check"actionListener="#{usuarioBean.onEdit}"update=":formdatatable"process="@this"oncomplete="confirmationEdit.hide()"></p:commandButton><p:commandButtonvalue="Cancelar"icon="ui-icon-close"oncomplete="confirmationEdit.hide()"/></h:panelGrid></p:dialog>
Editei meus códigos, com vários exemplos que peguei na internet mas não consegui resolver.
datatable com dialog
<h:formid="formdatatable"><p:panel><p:dataTableid="dattusuarios"var="users"value="#{usuarioBean.user}"style="text-align:center"paginator="true"rows="10"rowKey="#{users.usuCodigo}"><f:facetname="header">TabeladeUsuarios</f:facet><p:columnheaderText="Código"style="width:8%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuCodigo}"/></f:facet><f:facetname="input"><p:passwordvalue="#{users.usuCodigo}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Nome do Usuário"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuNome}"/></f:facet><f:facetname="input"><p:inputTextvalue="#{users.usuNome}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Tipo de Usuário"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuTipoUsuario}"align="center"/></f:facet><f:facetname="input"><p:inputTextvalue="#{users.usuTipoUsuario}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Senha"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuSenha}"/></f:facet><f:facetname="input"><p:passwordvalue="#{users.usuSenha}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Editar"style="width:5%"><p:commandButtononcomplete="confirmationEdit.show()"update=":formdatatable"icon="ui-icon-document-b"action="#{usuarioBean.carregarDialog}"><f:setPropertyActionListenervalue="#{users}"target="#{usuarioBean.selectedUsuario}"/></p:commandButton></p:column><p:columnheaderText="Excluir"style="width:5%"><p:commandButtonaction="#{usuarioBean.excluirUsuario}"icon="ui-icon-trash"onclick="confirmation.show()"><f:setPropertyActionListenervalue="#{users}"target="#{usuarioBean.selectedUsuario}"/></p:commandButton></p:column></p:dataTable></p:panel ></h:form><p:dialogheader="Edição do Usuário"widgetVar="confirmationEdit"resizable="false"id="usuDialog"showEffect="fade"hideEffect="explode"modal="true"><h:panelGridid="display"columns ="2"><h:outputLabelvalue="Código do Usuário : "/><h:outputLabelvalue="#{usuarioBean.selectedUsuario.usuCodigo}"/><h:outputLabelvalue="Nome do Usuário : "/><p:inputTextvalue="#{usuarioBean.selectedUsuario.usuNome}"style="width:100%"required="true"/><h:outputLabelvalue="Tipo de Usuário : "/><p:inputTextvalue="#{usuarioBean.selectedUsuario.usuTipoUsuario}"style="width:100%"required="true"requiredMessage="Digite o tipo de usuário!"/><h:outputLabelvalue="Senha : "/><p:passwordvalue="#{usuarioBean.selectedUsuario.usuSenha}"style="width:100%"required="true"feedback="true"promptLabel="Por favor, Digite a senha"weakLabel="Fraco"goodLabel="Boa"strongLabel="Forte"requiredMessage="Digite a senha de usuário!"/><p:commandButtonvalue="Alterar"icon="ui-icon-check"actionListener="#{usuarioBean.editarUsuario}"update=":formdatatable"process="@this"oncomplete="confirmationEdit.hide()"></p:commandButton><p:commandButtonvalue="Cancelar"icon="ui-icon-close"oncomplete="confirmationEdit.hide()"/></h:panelGrid></p:dialog>
igor_ks, muito obrigado pela atenção, pelo site do pimefaces eu já tinha tentado e não tinha conseguido mas eu consegui resolver, estou postando a solução pois alguém possa estar com as mesmas dúvidas que tive. Obrigado. Valeu !
O que me ajudou muito foi nesta página: http://www.lucianotulio.com.br/hibernate-primefaces/
a minha página jsf ficou assim:
<h:formid="formdatatable"><p:panel><p:dataTableid="dattusuarios"var="users"paginator="true"rows="10"value="#{usuarioBean.user}"style="text-align:center"rowKey="#{users.usuCodigo}"emptyMessage="Não há registros de usuários cadastrados"filteredValue="#{usuarioBean.user}"><f:facetname="header">TabeladeUsuarios</f:facet><p:columnheaderText="Nome do Usuário"filterBy="nome do usuário"filterMatchMode="contains"style="width:30%"><h:outputTextvalue="#{users.usuNome}"/></p:column><p:columnheaderText="Tipo de Usuário"filterBy="Tipo de Usuário"filterMatchMode="contains"style="width:30%"><h:outputTextvalue="#{users.usuTipoUsuario}"align="center"/></p:column><p:columnheaderText="Senha"style="width:30%"><h:outputTextvalue="#{users.usuSenha}"/></p:column><p:columnheaderText="Ações"><p:commandLinktitle="Alterar"update=":formAlterar:Alterar"oncomplete="dialogAlterar.show()"immediate="true"><p:graphicImagelibrary="images"name="editar.png"/><f:setPropertyActionListenertarget="#{usuarioBean.usuario}"value="#{users}"/></p:commandLink><p:commandLinktitle="Excluir"update=":formExcluir:Excluir"oncomplete="confirmation.show()"immediate="true"><p:graphicImagelibrary="images"name="excluir.png"/><f:setPropertyActionListenertarget="#{usuarioBean.usuario}"value="#{users}"/></p:commandLink></p:column></p:dataTable></p:panel ></h:form><h:formid="formAlterar"><p:dialogheader="Edição do Usuário"widgetVar="dialogAlterar"resizable="false"id="Alterar"showEffect="fade"hideEffect="explode"modal="true"><h:panelGridcolumns ="2"><h:outputLabelvalue="Código do Usuário : "/><h:outputLabelvalue="#{usuarioBean.usuario.usuCodigo}"/><h:outputLabelvalue="Nome do Usuário : "/><p:inputTextvalue="#{usuarioBean.usuario.usuNome}"style="width:100%"required="true"/><h:outputLabelvalue="Tipo de Usuário : "/><p:inputTextvalue="#{usuarioBean.usuario.usuTipoUsuario}"style="width:100%"required="true"requiredMessage="Digite o tipo de usuário!"/><h:outputLabelvalue="Senha : "/><p:passwordvalue="#{usuarioBean.usuario.usuSenha}"style="width:100%"required="true"feedback="true"promptLabel="Por favor, Digite a senha"weakLabel="Fraco"goodLabel="Boa"strongLabel="Forte"requiredMessage="Digite a senha de usuário!"/><p:commandButtonvalue="Alterar"icon="ui-icon-check"actionListener="#{usuarioBean.editarUsuario}"update=":formdatatable"process="@this"oncomplete="confirmationEdit.hide()"></p:commandButton><p:commandButtonvalue="Cancelar"icon="ui-icon-close"oncomplete="confirmationEdit.hide()"/></h:panelGrid></p:dialog></h:form><h:formid="formExcluir"><p:confirmDialogid="Excluir"message="Você gostaria de deletar o(a) Usuário(a) #{usuarioBean.usuario.usuNome}?"header="Excluir Usuário"severity="alert"widgetVar="confirmation"showEffect="fade"hideEffect="explode"><p:commandButtonid="confirm"value="Sim"oncomplete="confirmation.hide()"actionListener="#{usuarioBean.excluirUsuario}"update=":formdatatable:dattusuarios, :formusuarios:messages"icon="ui-icon-check"/><p:commandButtonid="decline"value="Não"onclick="confirmation.hide()"type="button"icon="ui-icon-close"/></p:confirmDialog></h:form>
Bean
packagebr.com.livros.controle;importjava.util.ArrayList;importjava.util.List;importjavax.faces.application.FacesMessage;importjavax.faces.bean.ManagedBean;importjavax.faces.bean.ViewScoped;importjavax.faces.context.FacesContext;importjavax.faces.event.ActionEvent;importjavax.servlet.http.HttpServletRequest;importbr.com.livros.dao.UsuarioDAO;importbr.com.livros.modelo.Usuario;@ManagedBean(name="usuarioBean")@ViewScopedpublicclassUsuarioBean{@SuppressWarnings("rawtypes")privateListuser=newArrayList();privateUsuariousuario=newUsuario();UsuarioDAOuserdao=newUsuarioDAO();publicUsuarioBean(){user=userdao.listarUsuario();usuario=newUsuario();}publicStringSalvar(){UsuarioDAOusuariodao=newUsuarioDAO();usuariodao.AdicionarUsuario(usuario);usuario=newUsuario();return"";}publicList<Usuario>getUser(){userdao=newUsuarioDAO();user=userdao.listarUsuario();returnuser;}publicvoidsetUser(List<Usuario>user){this.user=user;}publicUsuariogetUsuario(){returnusuario;}publicvoidsetUsuario(Usuariousuario){this.usuario=usuario;}publicvoideditarUsuario(){FacesContextcontext=FacesContext.getCurrentInstance();HttpServletRequestreq=(HttpServletRequest)context.getExternalContext().getRequest();if(req.getParameter("usuId")!=null&&!req.getParameter("usuId").equals("")){}usuario=newUsuario();}publicStringexcluirUsuario(ActionEventactionEvent){FacesContextfacesMessage=FacesContext.getCurrentInstance();try{usuario.getUsuCodigo();userdao.ExcluirUsuario(usuario);usuario=newUsuario();facesMessage.addMessage("formusuarios:messages",newFacesMessage("Usuário foi excluido com sucesso ! "));}catch(Exceptione){facesMessage.addMessage("formusuarios:messages",newFacesMessage("Não foi possível excluir o Usuário ! "));}return"";}}
DAO
Sessionsession=ConnectFactory.getInstance();Transactiontran;publicvoidAdicionarUsuario(Usuarioc){AnnotationConfigurationcfg=newAnnotationConfiguration();cfg.addAnnotatedClass(Usuario.class);session.beginTransaction();Serializablea=session.save(c);session.getTransaction().commit();session.close();FacesContextfacesMessage=FacesContext.getCurrentInstance();if(!a.equals("")&&!a.equals("0")&&!a.equals(null)){facesMessage.addMessage("login:messages",newFacesMessage("Usuário foi cadastrado com sucesso ! "));}else{facesMessage.addMessage("login:messages",newFacesMessage("Não foi possível cadastrar o Usuário"));}}publicvoidAlterarUsuario(Usuarioc){AnnotationConfigurationcfg=newAnnotationConfiguration();cfg.addAnnotatedClass(Usuario.class);session.beginTransaction();this.session.flush();this.session.clear();session.update(c);//session.getTransaction().commit(); session.close();}publicvoidExcluirUsuario(Usuariou){AnnotationConfigurationcfg=newAnnotationConfiguration();cfg.addAnnotatedClass(Usuario.class);this.session.beginTransaction();//this.session.merge(u);this.session.flush();this.session.clear();this.session.delete(u);this.session.getTransaction().commit();}
alexwebsp
alexwebsp:
Bom dia !
Não estou conseguindo enviar os dados de uma linha que selecionei através de um botão com o <p:commandButton/> do <p:dataTable> para o <p:dialog /> para que eu possa editar.
<h:formid="formdatatable"><p:panel><p:dataTableid="dattusuarios"var="users"value="#{usuarioBean.user}"style="text-align:center"paginator="true"rows="10"rowKey="#{users.usuCodigo}"><f:facetname="header">TabeladeUsuarios</f:facet><p:columnheaderText="Código"style="width:8%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuCodigo}"/></f:facet><f:facetname="input"><p:passwordvalue="#{users.usuCodigo}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Nome do Usuário"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuNome}"/></f:facet><f:facetname="input"><p:inputTextvalue="#{users.usuNome}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Tipo de Usuário"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuTipoUsuario}"align="center"/></f:facet><f:facetname="input"><p:inputTextvalue="#{users.usuTipoUsuario}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Senha"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuSenha}"/></f:facet><f:facetname="input"><p:passwordvalue="#{users.usuSenha}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Editar"style="width:5%"><p:commandButtononclick="confirmationEdit.show()"icon="ui-icon-document-b"action="#{usuarioBean.onList}"><f:setPropertyActionListenervalue="#{users.usuCodigo}"target="#{usuarioBean.parametro}"/></p:commandButton></p:column><p:columnheaderText="Excluir"style="width:5%"><p:commandButtonaction="#{usuarioBean.onCancel}"icon="ui-icon-trash"onclick="confirmation.show()"><f:paramvalue="#{users.usuCodigo}"name="usuId"/></p:commandButton></p:column></p:dataTable></p:panel ></h:form><p:dialogheader="Edição do Usuário"widgetVar="confirmationEdit"resizable="false"id="usuDialog"showEffect="fade"hideEffect="explode"modal="true"><h:panelGridid="display"columns ="2"><h:outputLabelvalue="Código do Usuário : "/><h:outputLabelvalue="#{usuarioBean.painel.usuCodigo}"/><h:outputLabelvalue="Nome do Usuário : "/><p:inputTextvalue="#{usuarioBean.painel.usuNome}"style="width:100%"required="true"/><h:outputLabelvalue="Tipo de Usuário : "/><p:inputTextvalue=""style="width:100%"required="true"requiredMessage="Digite o tipo de usuário!"/><h:outputLabelvalue="Senha : "/><p:passwordvalue=""style="width:100%"required="true"feedback="true"promptLabel="Por favor, Digite a senha"weakLabel="Fraco"goodLabel="Boa"strongLabel="Forte"requiredMessage="Digite a senha de usuário!"/><p:commandButtonvalue="Alterar"icon="ui-icon-check"actionListener="#{usuarioBean.onEdit}"update=":formdatatable"process="@this"oncomplete="confirmationEdit.hide()"></p:commandButton><p:commandButtonvalue="Cancelar"icon="ui-icon-close"oncomplete="confirmationEdit.hide()"/></h:panelGrid></p:dialog>
alexwebsp
alexwebsp:
Bom dia !
Não estou conseguindo enviar os dados de uma linha que selecionei através de um botão com o <p:commandButton/> do <p:dataTable> para o <p:dialog /> para que eu possa editar.
<h:formid="formdatatable"><p:panel><p:dataTableid="dattusuarios"var="users"value="#{usuarioBean.user}"style="text-align:center"paginator="true"rows="10"rowKey="#{users.usuCodigo}"><f:facetname="header">TabeladeUsuarios</f:facet><p:columnheaderText="Código"style="width:8%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuCodigo}"/></f:facet><f:facetname="input"><p:passwordvalue="#{users.usuCodigo}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Nome do Usuário"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuNome}"/></f:facet><f:facetname="input"><p:inputTextvalue="#{users.usuNome}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Tipo de Usuário"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuTipoUsuario}"align="center"/></f:facet><f:facetname="input"><p:inputTextvalue="#{users.usuTipoUsuario}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Senha"style="width:30%"><p:cellEditor><f:facetname="output"><h:outputTextvalue="#{users.usuSenha}"/></f:facet><f:facetname="input"><p:passwordvalue="#{users.usuSenha}"style="width:100%"/></f:facet></p:cellEditor></p:column><p:columnheaderText="Editar"style="width:5%"><p:commandButtononclick="confirmationEdit.show()"icon="ui-icon-document-b"action="#{usuarioBean.onList}"><f:setPropertyActionListenervalue="#{users.usuCodigo}"target="#{usuarioBean.parametro}"/></p:commandButton></p:column><p:columnheaderText="Excluir"style="width:5%"><p:commandButtonaction="#{usuarioBean.onCancel}"icon="ui-icon-trash"onclick="confirmation.show()"><f:paramvalue="#{users.usuCodigo}"name="usuId"/></p:commandButton></p:column></p:dataTable></p:panel ></h:form><p:dialogheader="Edição do Usuário"widgetVar="confirmationEdit"resizable="false"id="usuDialog"showEffect="fade"hideEffect="explode"modal="true"><h:panelGridid="display"columns ="2"><h:outputLabelvalue="Código do Usuário : "/><h:outputLabelvalue="#{usuarioBean.painel.usuCodigo}"/><h:outputLabelvalue="Nome do Usuário : "/><p:inputTextvalue="#{usuarioBean.painel.usuNome}"style="width:100%"required="true"/><h:outputLabelvalue="Tipo de Usuário : "/><p:inputTextvalue=""style="width:100%"required="true"requiredMessage="Digite o tipo de usuário!"/><h:outputLabelvalue="Senha : "/><p:passwordvalue=""style="width:100%"required="true"feedback="true"promptLabel="Por favor, Digite a senha"weakLabel="Fraco"goodLabel="Boa"strongLabel="Forte"requiredMessage="Digite a senha de usuário!"/><p:commandButtonvalue="Alterar"icon="ui-icon-check"actionListener="#{usuarioBean.onEdit}"update=":formdatatable"process="@this"oncomplete="confirmationEdit.hide()"></p:commandButton><p:commandButtonvalue="Cancelar"icon="ui-icon-close"oncomplete="confirmationEdit.hide()"/></h:panelGrid></p:dialog>