Problema com JSF + Ajax + EL

2 respostas
I

Olá amigos, não estou conseguindo fazer rodar o remover de uma tabela feita em JSF com ajax,
o link remover aparece, mas não executa nada, ou seja, o ajax não ta funcionando (eu acho), segue o código:

<!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">

<h:body>
	<h:form>
		<h:dataTable id="tabelaRecrutadores"
			value="#{controleRecrutador.recrutadores}" var="recrutador">
			<h:column>
				<f:facet name="header">
					<h:outputText value="Id"></h:outputText>
				</f:facet>
			#{recrutador.id}
		</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Nome"></h:outputText>
				</f:facet>
			#{recrutador.nome}
		</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Sobrenome"></h:outputText>
				</f:facet>
			#{recrutador.sobrenome}
		</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Matrícula"></h:outputText>
				</f:facet>
			#{recrutador.matricula}
		</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Email"></h:outputText>
				</f:facet>
			#{recrutador.email}
		</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Nome de Usuário"></h:outputText>
				</f:facet>
			#{recrutador.login.usuario}
		</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Senha"></h:outputText>
				</f:facet>
			#{recrutador.login.senha}
		</h:column>
			<h:column>

				<f:facet name="header">
					<h:outputText value="Remover"></h:outputText>
				</f:facet>

				<f:ajax listener="#{controleRecrutador.deletar(recrutador)}"  //aqui o Eclipse fala q tem erro de syntaxe na Expression Language
					event="click" render="@form">                                      //não pode passar parâmetro??
					<h:commandLink>Remover</h:commandLink>
				</f:ajax>
			</h:column>
		</h:dataTable>
	</h:form>
</h:body>
</html>

e o meu managedBean

package br.com.umc.controle;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.event.AjaxBehaviorEvent;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import br.com.umc.dao.HibernateDAORecrutador;
import br.com.umc.negocio.Login;
import br.com.umc.negocio.Recrutador;

@ManagedBean
public class ControleRecrutador {
	private Recrutador recrutador;
	private EntityManagerFactory factory;
	private List<Recrutador> recrutadores;

	public ControleRecrutador() {
		recrutador = new Recrutador();
		recrutador.setLogin(new Login());
		factory = Persistence.createEntityManagerFactory("recrutamento");
	}

	public Recrutador getRecrutador() {
		return recrutador;
	}

	public void setRecrutador(Recrutador recrutador) {
		this.recrutador = recrutador;
	}

	public void setRecrutadores(List<Recrutador> recrutadores) {
		this.recrutadores = recrutadores;
	}

	public String salvar() {

		EntityManager manager = factory.createEntityManager();
		HibernateDAORecrutador h = new HibernateDAORecrutador(manager);
		h.salvar(recrutador);

		return "olaMundo.jsp";
	}

	public List<Recrutador> getRecrutadores() {
		if (this.recrutadores == null) {
			System.out.println("CHAMANDO O REPOSITORIO");
			EntityManager manager = factory.createEntityManager();
			HibernateDAORecrutador repository = new HibernateDAORecrutador(
					manager);
			this.recrutadores = repository.getRecrutadores();
		}
		return this.recrutadores;
	}

	public void deletar(Recrutador recrutador) {
		EntityManager manager = factory.createEntityManager();
		HibernateDAORecrutador repository = new HibernateDAORecrutador(manager);
		repository.excluir(recrutador);
		this.recrutadores = null;

	}

	public EntityManagerFactory getFactory() {
		return factory;
	}

	public void setFactory(EntityManagerFactory factory) {
		this.factory = factory;
	}

}

Alguem pode me ajudar?

Muito Obrigado

2 Respostas

Hebert_Coelho

Vc está utilizando JSF 1.2? ou JSF 2.0?

I

JSF 2.0

Criado 5 de novembro de 2011
Ultima resposta 6 de nov. de 2011
Respostas 2
Participantes 2