Ola galera estou trabalhando com JSF 2 e Primefaces em um mini projeto, so que estou tendo um problema ao tentar editar um registro.
me refiro ao crud.
as opções de inserir, excluir do crud estao funcionando maravilha, agora o editar é que não estou conseguindo.
eu seto as propriedades do bean pela linha do datatable do prime mas quando eu abro a tela de edição que nos campos recebem as pripriedades do objeto que setei na seleção, mas quando abre a tela de adição não apareçe informação alguma nos campos.
abaixo vai os codigos.
espero que me ajudem.
meu managed bean
package mmv.clinical.faces.bean;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.primefaces.event.SelectEvent;
import mmv.clinical.model.dao.ClinicaDAO;
import mmv.clinical.model.entities.Clinica;
@ManagedBean(name="clinicaBean")
@RequestScoped
public class ClinicaBean {
private Clinica clinicaEdit = new Clinica();
private List<Clinica> listaDeClinicas;
//tentei até com DataModel e nada
private DataModel<Clinica> lista;
private int id;
private ClinicaDAO daop = new ClinicaDAO();
public ClinicaBean() {
}
public Clinica getClinicaEdit() {
return clinicaEdit;
}
public void setClinicaEdit(Clinica clinicaEdit) {
this.clinicaEdit = clinicaEdit;
}
public List<Clinica> getListaDeClinicas() {
listaDeClinicas = daop.getAllObjects();
return listaDeClinicas;
}
public void setListaDeClinicas(List<Clinica> listaDeClinicas) {
this.listaDeClinicas = listaDeClinicas;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
//metodos
public void seleciona(SelectEvent event)
{
clinicaEdit = (Clinica)(event.getObject());
}
public String editar()
{
if(clinicaEdit != null)
{
System.out.println(clinicaEdit.getDescricao());
}
else
{
System.out.println("Ta nulo essa porra");
}
return "edit.jsf";
}
public void insereClinica(ActionEvent event)
{
FacesContext contexto = FacesContext.getCurrentInstance();
ClinicaDAO dao = new ClinicaDAO();
if(dao.persistObject(clinicaEdit))
{
FacesMessage msg = new FacesMessage("Inserido com Sucesso.");
msg.setSeverity(FacesMessage.SEVERITY_INFO);
contexto.addMessage(null, msg);
clinicaEdit = new Clinica();
}else
{
FacesMessage msg = new FacesMessage("Erro ao inserir.");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
contexto.addMessage(null, msg);
}
}
public void excluirClinica(ActionEvent event)
{
FacesContext contexto = FacesContext.getCurrentInstance();
ClinicaDAO dao = new ClinicaDAO();
//System.out.println(selecao.getDescricao());
///clinicaEdit = dao.getObjectById(id);
if(dao.removeObject(clinicaEdit))
{
//System.out.println("Removeu");
FacesMessage msg = new FacesMessage("Excluido com Sucesso.");
msg.setSeverity(FacesMessage.SEVERITY_INFO);
contexto.addMessage(null, msg);
clinicaEdit = new Clinica();
}else
{
//System.out.println("Não removeu");
FacesMessage msg = new FacesMessage("Erro ao excluir.");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
contexto.addMessage(null, msg);
}
}
public void alterarClinica(ActionEvent event)
{
FacesContext contexto = FacesContext.getCurrentInstance();
ClinicaDAO dao = new ClinicaDAO();
if(dao.updateObject(clinicaEdit))
{
FacesMessage msg = new FacesMessage("Alterado com Sucesso.");
msg.setSeverity(FacesMessage.SEVERITY_INFO);
contexto.addMessage(null, msg);
clinicaEdit = new Clinica();
}else
{
System.out.println("Não alterou");
FacesMessage msg = new FacesMessage("Erro ao excluir.");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
contexto.addMessage(null, msg);
}
}
public DataModel<Clinica> getLista() {
listaDeClinicas = daop.getAllObjects();
lista = new ListDataModel<Clinica>(listaDeClinicas);
return lista;
}
public void setLista(DataModel<Clinica> lista) {
this.lista = lista;
}
}
minha pagina inicial que contem o datatable
[code]
<?xml version="1.0" encoding="UTF-8" ?> MMV CLINICAL .ui-widget, .ui-widget .ui-widget { font-size: 10px !important; } <p:submenu label="Gerênciamento" icon="ui-icon-bookmark">
</p:submenu>
<p:submenu label="Relatórios" icon="ui-icon-script">
</p:submenu>
</p:menubar>
<!-- fim menu -->
<!-- barra de ferramentas -->
<p:toolbar>
<p:toolbarGroup align="left">
<p:commandButton type="button" title="Cadastro de Clinicas" icon="ui-icon-home" value="Clinicas" onclick="GoToClinicaMain();"/>
<p:commandButton type="button" title="Cadastro de Funcionários" icon="ui-icon-person" value="Funcionários"/>
<p:commandButton type="button" title="Cadastro de Clientes" icon="ui-icon-suitecase" value="Clientes"/>
<p:separator/>
<p:commandButton type="button" title="Gerênciamento de Horários" icon="ui-icon-clock" value="Horários"/>
</p:toolbarGroup>
<p:toolbarGroup align="right">
<h:outputText value="Usuário Logado: Administrador" />
<h:outputText value=" " />
<p:commandButton type="button" title="Sair do Sistema" icon="ui-icon-close" value="Sair" onclick="dlgSair.show();"/>
</p:toolbarGroup>
</p:toolbar>
<!-- fim barra de ferramentas -->
<p:panel header="Manutenção de Clinicas">
<!-- barra de ferramentas Modulo -->
<p:toolbar>
<p:toolbarGroup align="left">
<p:commandButton type="button" title="Novo registro" icon="ui-icon-plus" value="Novo" onclick="GoToNewRecord();"/>
<p:commandButton type="button" title="Editar registro selecionado" icon="ui-icon-pencil" value="Editar" onclick="GoToEdit();"/>
<p:commandButton type="button" title="Excluir registro selecionado" icon="ui-icon-minus" value="Excluir" onclick="dlgDel.show();"
update="formMain"/>
<p:separator/>
<p:commandButton type="button" title="Imprimir Lista" icon="ui-icon-print" value="Imprimir"/>
<p:commandButton type="button" title="Buscar" icon="ui-icon-search" value="Pesquisar"/>
</p:toolbarGroup>
</p:toolbar>
<!-- fim barra de ferramentas Modulo -->
<!-- Lista -->
<p:dataTable var="clin" value="#{clinicaBean.lista}" rowKey="#{clin.codigo}" selectionMode="single"
selection="#{clinicaBean.clinicaEdit}" style="text-align:center">
<p:column headerText="Código">
<h:outputText value="#{clin.codigo}" />
</p:column>
<p:column headerText="Descrição da Clinica">
<h:outputText value="#{clin.descricao}" />
</p:column>
<p:column headerText="Endereço da Clinica">
<h:outputText value="#{clin.endereco}" />
</p:column>
<p:column headerText="Telefone">
<h:outputText value="#{clin.telefone}" />
</p:column>
<p:column headerText="Email">
<h:outputText value="#{clin.email}" />
</p:column>
</p:dataTable>
<!-- Fim Lista -->
</p:panel>
<!-- dialogs -->
<p:dialog modal="true" header="Saindo do sistema" widgetVar="dlgSair" resizable="false" style="text-align:center;">
<h:outputText value="Deseja realmente sair ?" />
<br/>
<br/>
<p:commandButton type="submit" value="Sim" oncomplete="dlgSair.hide();"/>
<p:commandButton type="button" value="Não" onclick="dlgSair.hide();"/>
</p:dialog>
<p:dialog id="display" modal="true" header="Confirmação" widgetVar="dlgDel" resizable="false" style="text-align:center;">
<h:outputText value="Deseja excluir o registro selecionado ?" />
<br/>
<h:outputText value="${clinicaBean.clinicaEdit.descricao}" />
<br/>
<br/>
<p:commandButton type="submit" value="Sim" actionListener="#{clinicaBean.excluirClinica}" oncomplete="excluido();"/>
<p:commandButton type="button" value="Não" onclick="dlgDel.hide();"/>
</p:dialog>
<!-- fim dialogs -->
</h:form>
</f:view>
</h:body>
[/code]e a pagina de edição
[code]
<?xml version="1.0" encoding="UTF-8" ?> MMV CLINICAL :: Nova Clinica .ui-widget, .ui-widget .ui-widget { font-size: 10px !important; } <p:submenu label="Gerênciamento" icon="ui-icon-bookmark">
</p:submenu>
<p:submenu label="Relatórios" icon="ui-icon-script">
</p:submenu>
</p:menubar>
<!-- fim menu -->
<!-- barra de ferramentas -->
<p:toolbar>
<p:toolbarGroup align="left">
<p:commandButton type="button" title="Cadastro de Clinicas" icon="ui-icon-home" value="Clinicas" onclick="GoToClinicaMain();"/>
<p:commandButton type="button" title="Cadastro de Funcionários" icon="ui-icon-person" value="Funcionários"/>
<p:commandButton type="button" title="Cadastro de Clientes" icon="ui-icon-suitecase" value="Clientes"/>
<p:separator/>
<p:commandButton type="button" title="Gerênciamento de Horários" icon="ui-icon-clock" value="Horários"/>
</p:toolbarGroup>
<p:toolbarGroup align="right">
<h:outputText value="Usuário Logado: Administrador" />
<h:outputText value=" " />
<p:commandButton type="button" title="Sair do Sistema" icon="ui-icon-close" value="Sair" onclick="dlgSair.show();"/>
</p:toolbarGroup>
</p:toolbar>
<!-- fim barra de ferramentas -->
<p:growl id="msg"/>
<p:panel header="Editar Clinica">
<h:outputText value="Descrição" />
<br/>
<p:inputText id="descricao" value="#{clinicaBean.clinicaEdit.descricao}" size="45"/>
<br/>
<h:outputText value="Endereço" />
<br/>
<p:inputTextarea id="endereco" value="#{clinicaBean.clinicaEdit.endereco}" cols="50" rows="3"/>
<br/>
<h:outputText value="Telefone para Contato" />
<br/>
<p:inputText id="tel" value="#{clinicaBean.clinicaEdit.telefone}" size="18"/>
<br/>
<h:outputText value="Email" />
<br/>
<p:inputText id="mail" value="#{clinicaBean.clinicaEdit.email}" size="30"/>
<br/>
<p:commandButton type="submit" actionListener="#{clinicaBean.alterarClinica}" update="msg" value="Salvar" oncomplete="GoToClinicaMain();">
</p:commandButton>
<h:outputText value=" " />
<p:commandButton type="reset" value="Limpar Campos"/>
<h:outputText value=" " />
<p:commandButton value="cancelar"/>
</p:panel>
<!-- dialogs -->
<p:dialog modal="true" header="Saindo do sistema" widgetVar="dlgSair" resizable="false" style="text-align:center;">
<h:outputText value="Deseja realmente sair ?" />
<br/>
<br/>
<p:commandButton type="submit" value="Sim" oncomplete="dlgSair.hide();"/>
<p:commandButton type="button" value="Não" onclick="dlgSair.hide();"/>
</p:dialog>
<!-- fim dialogs -->
</h:form>
</f:view>
</h:body>
[/code]Aguardo respostas.