Olá Pessoal, Bom Dia!
Estou iniciando meus estudos com (jsf + primefaces + JPA), estou tentando montar um cadastro simples para poder utilizado como exemplo, para as demais telas do meu projeto
Estou tentando montar uma janela que liste os dados em um dataTable e a manutenção desses dados (Inclução/ Alteração) quero fazer dentro de um dialog mas não estou conseguindo trabalhar com esse componente, consegui montar até a parte que cadastra, mas não consigo fazer a alteração dos dados, não sei o que pode estar acontecendo
Gostaria de ver com vocês que tem mais experiencia nesse ambiente e ajuda nessa minha primeira tela, pois estou travado :-(
Alguém trabalha dessa forma? teria como me enviar o codigo da pagina xhtml para poder ver como foi organizado as tags? acho que estou com dificuldade nessa parte
Abaixo está os dois codigos fontes da minha tela (XHTML e BEAN)
<?xml version='1.0' encoding='UTF-8' ?>
<h:body>
<ui:composition template="/template.xhtml">
<ui:define name="conteudo">
<h:form prependId="false">
<p:growl id="msg" showDetail="true" autoUpdate="true" life="4000"/>
<p:confirmDialog global="true" showEffect="fade" hideEffect="fade" closable="true" closeOnEscape="true" width="300">
<center>
<p:commandButton value="Sim" type="button" styleClass="ui-confirmdialog-yes" icon="iconeOK" />
</center>
</p:confirmDialog>
<p:dialog header="Estado Cívil" widgetVar="dlg" resizable="false" height="250" width="400">
<p:panelGrid id="pnlDados" columns="2">
<p:outputLabel value="Nome" />
<p:inputText id="nome" value="#{estadoCivilBean.estadoCivil.nome}" required="true">
<f:validateLength maximum="60" />
</p:inputText>
<p:outputLabel value="Ativo" />
<p:selectBooleanCheckbox value="#{estadoCivilBean.estadoCivil.ativo}" />
<f:facet name="footer">
<center>
<p:commandButton value="Salvar" update="tblEstadoCivil" oncomplete="dlg.hide()" actionListener="#{estadoCivilBean.salvar(actionEvent)}"/>
</center>
</f:facet>
</p:panelGrid>
</p:dialog>
<center>
<p:commandButton value="Novo" actionListener="#{estadoCivilBean.prepararAdicionar(actionEvent)}"
oncomplete="dlg.show()" immediate="true" update="pnlDados"/>
<p:dataTable id="tblEstadoCivil"
emptyMessage="Nenhum registro encontrado."
var="e"
value="#{estadoCivilBean.estadoCivilList}"
style="width: 500px" sortBy="#{e.nome}">
<f:facet name="header">
<h:outputLabel value="Lista dos Estados Civis cadastrados" />
</f:facet>
<p:column headerText="Descrição" sortBy="#{e.nome}" filterBy="#{e.nome}">
<h:outputText value="#{e.nome}" />
</p:column>
<p:column headerText="Ativo" sortBy="#{e.ativo}" style="width: 65px">
<center>
<p:graphicImage value="/resources/img/crud16/OK.png" rendered="#{e.ativo}" />
<p:graphicImage value="/resources/img/crud16/Cancelar.png" rendered="#{!e.ativo}" />
</center>
</p:column>
<p:column style="width: 70px">
<p:commandButton id="btnExcluir" title="Excluir registro."
icon="iconeExcluir" action="#{estadoCivilBean.excluir(e)}"
update="tblEstadoCivil" immediate="true">
<p:confirm header="Confirmação" message="#{_Mensagens.confirmarExcluir}" icon="iconeAtencao" />
</p:commandButton>
</p:column>
</p:dataTable>
</center>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
package bean;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.inject.Inject;
import javax.inject.Named;
import model.EstadoCivil;
import services.EstadoCivilService;
import util.Mensagens;
/**
* Bean da tela de Estado Civil
*
* @author Willian Vagner Vicente Corrêa
*/
@Named
@SessionScoped
public class EstadoCivilBean extends AbstractBean {
private static final long serialVersionUID = 1L;
@Inject
private EstadoCivilService estadoCivilService;
private EstadoCivil estadoCivil;
private DataModel<EstadoCivil> estadoCivilList;
public DataModel<EstadoCivil> getEstadoCivilList() {
if (estadoCivilList == null) {
List<EstadoCivil> lista = estadoCivilService.listarEstadoCivil();
estadoCivilList = new ListDataModel(lista);
}
return estadoCivilList;
}
public void prepararAdicionar(ActionEvent actionEvent) {
estadoCivil = null;
}
public void prepararAlterar(ActionEvent actionEvent) {
estadoCivil = (EstadoCivil) (estadoCivilList.getRowData());
}
public void alterar(EstadoCivil obj) {
estadoCivil = obj;
}
public void salvar(ActionEvent actionEvent) {
if (estadoCivil.getId() != null) {
estadoCivilService.alterar(estadoCivil);
addMensagem_Informativa(Mensagens.alterado_Sucesso());
} else {
estadoCivilService.inserir(estadoCivil);
addMensagem_Informativa(Mensagens.adicionado_Sucesso());
}
estadoCivil = null;
estadoCivilList = null;
}
public void excluir(EstadoCivil obj) {
estadoCivilService.excluir(obj.getId());
estadoCivil = null;
estadoCivilList = null;
addMensagem_Informativa(Mensagens.removido_Sucesso());
}
public void novo() {
this.estadoCivil = null;
}
public EstadoCivil getEstadoCivil() {
if (estadoCivil == null) {
estadoCivil = new EstadoCivil();
}
return estadoCivil;
}
public void setEstadoCivil(EstadoCivil estadoCivil) {
this.estadoCivil = estadoCivil;
}
}
--
Willian Vagner Vicente Corrêa
0 comentários:
Postar um comentário