Fala galera buenas?
Então… estou com o seguinte problema o f:setPropertyActionListener não esta passando o OBJETO :@ o que eu quero é simplesmente passar um objeto e excluir a bendita linha da tabela.
ERRO: java.lang.IllegalArgumentException: Object: null is not a known entity type.
QUEM SERÁ MEU HEROI?
MEU XHTML
<ui:composition 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.org/ui"
template="/template.xhtml">
<ui:define name="contents">
<h:form>
<p:panel id="listaAtor">
<p:dataTable value="#{sakilaMB.listaNomeAtores_action()}" var="ator" paginator="true" rows="10">
<f:facet name="header">
Paginas
</f:facet>
<p:column headerText="ID" sortBy="#{sakilaMB.idAtor}" filterBy="#{sakilaMB.idAtor}">
<f:facet name="header">
ID
</f:facet>
<h:outputText value="#{ator.actorId}" />
</p:column>
<p:column headerText="Nome" sortBy="#{sakilaMB.nome}" filterBy="#{sakilaMB.nome}">
<f:facet name="header">
Nome
</f:facet>
<h:outputText value="#{ator.firstName} " />
</p:column>
<p:column headerText="Nome" sortBy="#{sakilaMB.sobreNome}" filterBy="#{sakilaMB.sobreNome}">
<f:facet name="header">
Sobrenome
</f:facet>
<h:outputText value="#{ator.lastName} " />
</p:column>
<p:column headerText="Ultima Atuação" sortBy="#{sakilaMB.dataAtual}" filterBy="#{sakilaMB.dataAtual}">
<f:facet name="header">
Ultima Atuação
</f:facet>
<h:outputText value="#{ator.lastUpdate} " />
</p:column>
<p:column headerText="Excluir">
<p:commandLink value="Excluir" onclick="confirmation.show()">
<f:setPropertyActionListener target="#{sakilaMB.atorSelecionado}" value="#{ator}" />
</p:commandLink>
</p:column>
</p:dataTable>
</p:panel>
<p:confirmDialog message="Deseja realmente excluir?" header="Excluir" severity="alert" widgetVar="confirmation">
<p:commandButton value="Sim" update="listaAtor" oncomplete="confirmation.hide()" actionListener="#{sakilaMB.excluirAtor_action()}" ajax="false" />
<p:commandButton value="Não" onclick="confirmation.hide()" type="button" />
</p:confirmDialog>
</h:form>
</ui:define>
</ui:composition>
MEU BEAN
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.empresa;
import br.com.empresa.entidade.Actor;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
/**
*
* @author suporte
*/
@Stateless
public class SakilaBean implements SakilaBeanLocal {
@PersistenceContext(unitName = "TesteLeandroPU")
private EntityManager em;
@Override
public void persist(Object object) {
em.persist(object);
}
@Override
public void AdicionaAtor(Actor ator) {
em.persist(ator);
}
@Override
public List<Actor> listaNomeAtor() {
Query q = em.createNamedQuery("Actor.findAll");
List<Actor> atores = q.getResultList();
if (atores.isEmpty()) {
return null;
} else {
return atores;
}
}
@Override
public void excluirAtor(Actor ator){
em.remove(ator);
em.flush();
}
// Add business logic below. (Right-click in editor and choose
// "Insert Code > Add Business Method")
}
MEU MB
[code]
/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package br.com.empresa;
import br.com.empresa.entidade.Actor;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import sun.java2d.pipe.SpanShapeRenderer;
/**
*
-
@author suporte
*/
@ManagedBean
@RequestScoped
public class SakilaMB {
@EJB
private SakilaBeanLocal sakilaB;/**
- Creates a new instance of SakilaMB
*/
private String nome;
private String sobreNome;
private Date dataAtual = Calendar.getInstance().getTime();
private Actor ator;
private Actor idAtor;
private Actor atorSelecionado;
public SakilaMB() {
}public String adicionaAtor(){
Actor a = new Actor();
a.setFirstName(nome);
a.setLastName(sobreNome);
a.setLastUpdate(getDataAtual());
sakilaB.AdicionaAtor(a);
nome = sobreNome = “”;
return “”;
}public List listaNomeAtores_action(){
return sakilaB.listaNomeAtor();
}public String excluirAtor_action(){
System.out.println("É null? " + (atorSelecionado == null ? “sim” : “nao”));
sakilaB.excluirAtor(atorSelecionado);return "";
}[/code]
- Creates a new instance of SakilaMB