Pessoal, tenho um CRUD, somente a opção de Alterar, não está funcionando, ao Clicar em Alterar não carrega o objeto selecionado com seus valores, aparece tudo bem branco, oq poderia ser, obrigado?
package br.com.colibri.hotelaria.tipo;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Tipo implements Serializable {
private static final long serialVersionUID = 3949697711539626907L;
@Id
@GeneratedValue
@Column(name = "TIPO_ID")
private Long id;
@Column(name = "TIPO_NOME")
private String nome;
@Column(name = "TIPO_VALOR")
private double valor;
// get's e set's
}
Meu ManagedBean
package br.com.colibri.hotelaria.tipo;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UIData;
import org.hibernate.Session;
import org.hibernate.Transaction;
import br.com.colibri.hotelaria.util.BaseBean;
import br.com.colibri.hotelaria.util.HibernateUtil;
import br.com.colibri.hotelaria.util.SessionUtil;
@ManagedBean
@RequestScoped
public class TipoBean {
private Tipo tipo = new Tipo();
private List<Tipo> lista = new ArrayList<Tipo>();
private UIData tipoSelecionado;
@SuppressWarnings("unchecked")
public List<Tipo> listaTodosTipos() {
Session session = HibernateUtil.getSession();
List<Tipo> list = session.createQuery("from Tipo").list();
return list;
}
public List<Tipo> getLista() {
lista = listaTodosTipos();
return lista;
}
public void setLista(List<Tipo> lista) {
this.lista = lista;
}
public String novo() {
if (this.tipo == null)
this.tipo = new Tipo();
return "tipoIncluir";
}
public String editar() {
this.tipo = (Tipo) tipoSelecionado.getRowData();
return "tipoAlterar";
}
public String excluir() {
tipo = (Tipo) tipoSelecionado.getRowData();
Session session = HibernateUtil.getSession();
Transaction t = session.beginTransaction();
try {
session.delete(tipo);
t.commit();
SessionUtil.addSuccess("OperacaoSucesso");
tipo = new Tipo();
} catch (Exception e) {
t.rollback();
SessionUtil.addError("OperacaoFracasso");
} finally {
if (session.isOpen())
session.close();
}
return null;
}
public String atualizar() {
Session session = HibernateUtil.getSession();
Transaction t = session.beginTransaction();
try {
session.update(tipo);
t.commit();
SessionUtil.addSuccess("OperacaoSucesso");
} catch (Exception e) {
t.rollback();
SessionUtil.addError("OperacaoFracasso");
} finally {
if (session.isOpen())
session.close();
tipo = new Tipo();
}
return "tipoManter";
}
public String salvar() {
Session session = HibernateUtil.getSession();
Transaction t = session.beginTransaction();
try {
session.merge(tipo);
t.commit();
SessionUtil.addSuccess("OperacaoSucesso");
tipo = new Tipo();
} catch (Exception e) {
t.rollback();
SessionUtil.addError("OperacaoFracasso");
} finally {
if (session.isOpen())
session.close();
}
return "tipoManter";
}
public Tipo getTipo() {
return tipo;
}
public void setTipo(Tipo tipo) {
this.tipo = tipo;
}
public UIData getTipoSelecionado() {
return tipoSelecionado;
}
public void setTipoSelecionado(UIData tipoSelecionado) {
this.tipoSelecionado = tipoSelecionado;
}
}
Meu XHTML
<?xml version="1.0" encoding='UTF-8' ?>
<!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.prime.com.tr/ui">
<ui:composition template="/templates/interna.xhtml">
<ui:define name="corpo">
<h:panelGrid style="margin: 0 auto;">
<f:view>
<h:form id="edicao">
<p:messages />
<p:dataTable style="width: 655px height: 200px" scrollable="false"
loadingMessage="Carregando..." rows="10"
emptyMessage="Nenhum registro encontrado."
value="#{tipoBean.lista}" var="t" id="tipos"
binding="#{tipoBean.tipoSelecionado}" paginator="true"
paginatorPosition="bottom">
<p:column width="70">
<f:facet name="header">Id</f:facet>
<h:outputText value="#{t.id}" />
</p:column>
<p:column width="500">
<f:facet name="header">Nome</f:facet>
<h:outputText value="#{t.nome}" />
</p:column>
<p:column width="370">
<f:facet name="header">Valor R$</f:facet>
<h:outputText value="#{t.valor}" />
</p:column>
<p:column width="15" style="text-align:center">
<f:facet name="header">Incluir</f:facet>
<p:commandLink action="#{tipoBean.novo}" id="btn_incluir"
ajax="false">
<h:graphicImage library="imagens" name="add.png"
immediate="true" />
</p:commandLink>
</p:column>
<p:column width="15" style="text-align:center">
<f:facet name="header">Alterar</f:facet>
<p:commandLink action="#{tipoBean.editar}" id="btn_editar"
ajax="false">
<h:graphicImage library="imagens" name="page_edit.png"
immediate="true" />
</p:commandLink>
</p:column>
<p:column width="15" style="text-align:center">
<f:facet name="header">Excluir</f:facet>
<p:commandLink action="#{tipoBean.excluir}" update="edicao"
id="btn_excluir"
onclick="if (!confirm('Confirma a exclusão ?')) return false;">
<h:graphicImage library="imagens" name="page_delete.png" />
</p:commandLink>
</p:column>
</p:dataTable>
</h:form>
</f:view>
</h:panelGrid>
</ui:define>
</ui:composition>
</html>
FacesConfig
<!-- Tipo -->
<navigation-rule>
<from-view-id>/pages/tipo/tipoManter.xhtml</from-view-id>
<navigation-case>
<from-outcome>tipoAlterar</from-outcome>
<to-view-id>/pages/tipo/tipoAlterar.xhtml</to-view-id>
<redirect></redirect>
</navigation-case>
<navigation-case>
<from-outcome>tipoIncluir</from-outcome>
<to-view-id>/pages/tipo/tipoIncluir.xhtml</to-view-id>
<redirect></redirect>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/pages/tipo/tipoIncluir.xhtml</from-view-id>
<navigation-case>
<from-outcome>tipoManter</from-outcome>
<to-view-id>/pages/tipo/tipoManter.xhtml</to-view-id>
<redirect></redirect>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/pages/tipo/tipoAlterar.xhtml</from-view-id>
<navigation-case>
<from-outcome>tipoManter</from-outcome>
<to-view-id>/pages/tipo/tipoManter.xhtml</to-view-id>
<redirect></redirect>
</navigation-case>
</navigation-rule>