Problema com selectOneMenu JSF [Resolvido]

Então pessoal estou com um probleminha que aparentemente deve ser um erro tosco q estou bobiando…

Não estou conseguindo carregar meu comboBox… ele vem vazio e tem pessoas cadastradas, também nao grava nenhuma informação digitada no banco.

[code]
private HtmlSelectOneMenu menuRM;

// Pega a lista criada sem precisar dar new no FornecedorHandler do método
// getFornecedores.
private RMHandler getRMHandler() {

	FacesContext facesContext = FacesContext.getCurrentInstance();
	VariableResolver variableResolver = facesContext.getApplication()
			.getVariableResolver();
	// Tenho que passar o facesContext e também o managedBean
	return (RMHandler) variableResolver.resolveVariable(
			facesContext, "RMHandler");

}

public List<SelectItem> getRMs() {
	List<SelectItem> lista = new ArrayList<SelectItem>();
	List<CadastroRM> cadastroRMLista = getRMHandler().getAllCadastroRM();
	for (CadastroRM cadastroRM : cadastroRMLista) {
		// Só aceita String por isso estou convertendo o long do id com o
		// .toString()
		SelectItem selectItem = new SelectItem(cadastroRM.getId(), cadastroRM.getNomeRM());
		lista.add(selectItem);
	}


	return lista;

}


public void salvar(ActionEvent actionEvent) {

	Session session = HibernateUtil.getCurrentSession();
	DAO<CadastroRM> cadastroRMDao = new DAO<CadastroRM>(session, CadastroRM.class);
	long id = Long.parseLong(menuRM.getValue().toString());
	CadastroRM cadastroRM = cadastroRMDao.load(id);
	cadastroVisita.setCadastroRM(cadastroRM);
	DAO<CadastroVisita> dao = new DAO<CadastroVisita>(session, CadastroVisita.class);
	dao.salveOrUpdate(this.cadastroVisita);
	this.cadastroVisita = new CadastroVisita();
}

public HtmlSelectOneMenu getMenuRM() {
	return menuRM;
}

public void setMenuRM(HtmlSelectOneMenu menuRM) {
	this.menuRM = menuRM;
}[/code]

<t:panelGrid align="center"> <h:outputText value="Descrição da Visita:" styleClass="titulo_campos"/> <h:inputText value="#{visitaHandler.cadastroVisita.descricao}"required="true"/> <h:outputText value="Data:" styleClass="titulo_campos"/> <t:inputCalendar value="#{visitaHandler.cadastroVisita.data}" renderAsPopup="true"/> <h:outputText value="RM"/> <h:selectOneMenu binding="#{visitaHandler.menuRM}"> <f:selectItems value="#{visitaHandler.rMs}"/> </h:selectOneMenu> <h:commandButton value="Gravar" action="#{visitaHandler.salvar}"/> </t:panelGrid>

Ignorem os comentários, é q eu usei esse msm selectonmenu num outro aplicativo q fiz mto tempo atrás…
Vlw :smiley:

Pra piorar agora ta dando essa msg:

[code]type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: /cadastroVisita.jsp(18,24) equal symbol expected
br.com.xxx.sgv.hibernate.sessionfilter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:28)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)

root cause

javax.servlet.ServletException: /cadastroVisita.jsp(18,24) equal symbol expected
javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
br.com.xxx.sgv.hibernate.sessionfilter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:24)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)

root cause

javax.faces.FacesException: /cadastroVisita.jsp(18,24) equal symbol expected
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:435)
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
br.com.xxx.sgv.hibernate.sessionfilter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:24)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)

root cause

org.apache.jasper.JasperException: /cadastroVisita.jsp(18,24) equal symbol expected
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:194)
org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:144)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1339)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1578)
org.apache.jasper.compiler.Parser.parseBody(Parser.java:1807)
org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1070)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1378)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1578)
org.apache.jasper.compiler.Parser.parseBody(Parser.java:1807)
org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1070)

[/code]

ele ta dizendo que ta com erro no jsp!

/cadastroVisita.jsp(18,24) equal symbol expected

tenta ver se acha algum = faltando no jsp

[quote=sergiousp]ele ta dizendo que ta com erro no jsp!

/cadastroVisita.jsp(18,24) equal symbol expected

tenta ver se acha algum = faltando no jsp

[/quote]

Tá nao, é no selectOneMenu o problema, olha a msg q deu nele:

[quote]type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Cannot get value for expression ‘#{visitaHandler.RM}’
br.com.xxx.sgv.hibernate.sessionfilter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:28)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)

root cause

javax.servlet.ServletException: Cannot get value for expression ‘#{visitaHandler.RM}’
javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
br.com.xxx.sgv.hibernate.sessionfilter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:24)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)

root cause

javax.faces.FacesException: Cannot get value for expression ‘#{visitaHandler.RM}’
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:435)
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
br.com.xxx.sgv.hibernate.sessionfilter.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:24)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)

root cause

javax.faces.el.EvaluationException: Cannot get value for expression ‘#{visitaHandler.RM}’
org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:402)
javax.faces.component.UISelectItems.getValue(UISelectItems.java:55)
org.apache.myfaces.shared_impl.util.SelectItemsIterator.hasNext(SelectItemsIterator.java:102)
org.apache.myfaces.shared_impl.renderkit.RendererUtils.internalGetSelectItemList(RendererUtils.java:477)
org.apache.myfaces.shared_impl.renderkit.RendererUtils.getSelectItemList(RendererUtils.java:453)
org.apache.myfaces.shared_impl.renderkit.html.HtmlRendererUtils.internalRenderSele[/quote]

[code]public List getRM() {
List lista = new ArrayList();
List cadastroRMLista = getRMHandler().getAllCadastroRM();
for (CadastroRM cadastroRM : cadastroRMLista) {
// Só aceita String por isso estou convertendo o long do id com o
// .toString()
SelectItem selectItem = new SelectItem(cadastroRM.getId(),
cadastroRM.getNomeRM());
lista.add(selectItem);
}

	return lista;

}

[/code]

Acho q fica mais facil se eu mostrar os fontes.

Classe CadastroVisita:

[code]/**

  • @author Eduardo Bregaida

*/

package br.com.xxx.sgv.cadastro.visita;

import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.com.xxx.sgv.cadastro.cliente.CadastroCliente;
import br.com.xxx.sgv.cadastro.rm.CadastroRM;

@Entity
public class CadastroVisita {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;

private String descricao;

@Temporal(TemporalType.DATE)
private Calendar data = new GregorianCalendar();

@ManyToOne
private CadastroRM cadastroRM;

@ManyToOne
private CadastroCliente cadastroCliente;

public CadastroCliente getCadastroCliente() {
	return cadastroCliente;
}

public void setCadastroCliente(CadastroCliente cadastroCliente) {
	this.cadastroCliente = cadastroCliente;
}

public CadastroRM getCadastroRM() {
	return cadastroRM;
}

public void setCadastroRM(CadastroRM cadastroRM) {
	this.cadastroRM = cadastroRM;
}

public Calendar getData() {
	return data;
}

public void setData(Calendar data) {
	this.data = data;
}

public String getDescricao() {
	return descricao;
}

public void setDescricao(String descricao) {
	this.descricao = descricao;
}

public long getId() {
	return id;
}

public void setId(long id) {
	this.id = id;
}

}
[/code]

Classe VisitaHandler:

[code]/**

  • @author Eduardo Bregaida

*/
package br.com.xxx.sgv.cadastro.visitahandler;

import java.util.ArrayList;
import java.util.List;

import javax.faces.component.html.HtmlSelectOneMenu;
import javax.faces.context.FacesContext;
import javax.faces.el.VariableResolver;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;

import org.hibernate.Session;

import br.com.xxx.sgv.cadastro.rm.CadastroRM;
import br.com.xxx.sgv.cadastro.rmhandler.RMHandler;
import br.com.xxx.sgv.cadastro.visita.CadastroVisita;
import br.com.xxx.sgv.dao.DAO;
import br.com.xxx.sgv.hibernate.hibernateutil.HibernateUtil;

public class VisitaHandler {

private CadastroVisita cadastroVisita = new CadastroVisita();

private HtmlSelectOneMenu htmlSelectOneMenuVisita;

public CadastroVisita getCadastroVisita() {
	return cadastroVisita;
}

public void setCadastroVisita(CadastroVisita cadastroVisita) {
	this.cadastroVisita = cadastroVisita;
}

public List<SelectItem> getRMS() {
	List<SelectItem> lista = new ArrayList<SelectItem>();
	List<CadastroRM> cadastroRMList = getRMHandler().getAllCadastroRM();
	for (CadastroRM cadastroRM : cadastroRMList) {
		// Só aceita String por isso estou convertendo o long do id com o
		// .toString()
		SelectItem selectItem = new SelectItem(cadastroRM.getId(),
				cadastroRM.getNomeRM());
		lista.add(selectItem);
	}

	return lista;

}

// Pega a lista criada sem precisar dar new no FornecedorHandler do método
// getFornecedores.
private RMHandler getRMHandler() {

	FacesContext facesContext = FacesContext.getCurrentInstance();
	VariableResolver variableResolver = facesContext.getApplication()
			.getVariableResolver();
	// Tenho que passar o facesContext e também o managedBean
	return (RMHandler) variableResolver.resolveVariable(facesContext,
			"rmHandler");

}

public void salvar(ActionEvent actionEvent) {
	Session session = HibernateUtil.getCurrentSession();
	DAO<CadastroRM> cadastroRMDao = new DAO<CadastroRM>(session,
			CadastroRM.class);
	long id = Long.parseLong(htmlSelectOneMenuVisita.getValue().toString());
	CadastroRM cadastroRM = cadastroRMDao.load(id);
	cadastroVisita.setCadastroRM(cadastroRM);
	DAO<CadastroVisita> dao = new DAO<CadastroVisita>(session,
			CadastroVisita.class);
	dao.salveOrUpdate(this.cadastroVisita);
	this.cadastroVisita = new CadastroVisita();
}

public List<CadastroVisita> getContas() {
	Session session = HibernateUtil.getCurrentSession();
	DAO<CadastroVisita> dao = new DAO<CadastroVisita>(session,
			CadastroVisita.class);

	return dao.list();
}

public HtmlSelectOneMenu getHtmlSelectOneMenuVisita() {
	return htmlSelectOneMenuVisita;
}

public void setHtmlSelectOneMenuVisita(
		HtmlSelectOneMenu htmlSelectOneMenuVisita) {
	this.htmlSelectOneMenuVisita = htmlSelectOneMenuVisita;
}

}
[/code]

Classe VisitaDAO:

[code]/**

  • @author Eduardo Bregaida

*/
package br.com.xxx.sgv.cadastro.visitadao;

import org.apache.log4j.Logger;
import org.hibernate.Session;

import br.com.xxx.sgv.cadastro.visita.CadastroVisita;

public class VisitaDAO {

private Session session;

private Logger logger = Logger.getLogger(CadastroVisita.class);

public VisitaDAO(Session session) {
	logger.info("Construtor" + session);
	this.session = session;

}

/**
 * @verifica salva novos dados no sistema
 */
public void salvaDados(CadastroVisita cadastroVisita) {
	session.saveOrUpdate(cadastroVisita);
}

/**
 * @verifica exclui os dados do sistema
 */
public void excluiDados(CadastroVisita cadastroVisita) {
	session.delete(cadastroVisita);
}

@SuppressWarnings("unchecked")
public CadastroVisita selecionaDados(CadastroVisita cadastroVisita) {
	return (CadastroVisita) session.load(CadastroVisita.class,
			cadastroVisita.getId());
}

}
[/code]

Classe CadastroRM:

[code]/**

  • @author Eduardo Bregaida

*/
package br.com.xxx.sgv.cadastro.rm;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class CadastroRM {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;

private String nomeRM;

private String CPF;

private String RG;

private String Ramal;

private String telefoneResidencial;

private String celular;

private String email;

private boolean ativo;

public boolean isAtivo() {
	return ativo;
}

public void setAtivo(boolean ativo) {
	this.ativo = ativo;
}

public String getCelular() {
	return celular;
}

public void setCelular(String celular) {
	this.celular = celular;
}

public String getCPF() {
	return CPF;
}

public void setCPF(String cpf) {
	CPF = cpf;
}

public String getNomeRM() {
	return nomeRM;
}

public void setNomeRM(String nomeRM) {
	this.nomeRM = nomeRM;
}

public String getRamal() {
	return Ramal;
}

public void setRamal(String ramal) {
	Ramal = ramal;
}

public String getRG() {
	return RG;
}

public void setRG(String rg) {
	RG = rg;
}

public String getTelefoneResidencial() {
	return telefoneResidencial;
}

public void setTelefoneResidencial(String telefoneResidencial) {
	this.telefoneResidencial = telefoneResidencial;
}

public String getEmail() {
	return email;
}

public void setEmail(String email) {
	this.email = email;
}

public long getId() {
	return id;
}

public void setId(long id) {
	this.id = id;
}

}
[/code]

Classe RMHandler:

[code]/**

  • @author Eduardo Bregaida

*/
package br.com.xxx.sgv.cadastro.rmhandler;

import java.util.List;

import javax.faces.component.UIComponent;
import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;

import org.hibernate.Session;

import br.com.xxx.sgv.cadastro.rm.CadastroRM;
import br.com.xxx.sgv.dao.DAO;
import br.com.xxx.sgv.hibernate.hibernateutil.HibernateUtil;

public class RMHandler {

private CadastroRM cadastroRM = new CadastroRM();

/*
 * private long sequence = 0;
 *
 * public long getSequence() { return sequence ; }
 */
public void salvar() {

	Session session = HibernateUtil.getCurrentSession();
	DAO<CadastroRM> dao = new DAO<CadastroRM>(session, CadastroRM.class);
	if (cadastroRM.getId() == 0) {
		dao.salveOrUpdate(this.cadastroRM);
	} else {
		session.merge(this.cadastroRM);
	}
	this.cadastroRM = new CadastroRM();

}

public void excluir() {
	Session session = HibernateUtil.getCurrentSession();
	DAO<CadastroRM> dao = new DAO<CadastroRM>(session, CadastroRM.class);
	dao.deleta(this.cadastroRM);
}

public void selecionaDados() {
	Session session = HibernateUtil.getCurrentSession();
	DAO<CadastroRM> dao = new DAO<CadastroRM>(session, CadastroRM.class);
	dao.load((long) cadastroRM.getId());
}

public CadastroRM getCadastroRM() {
	return cadastroRM;
}

public void setCadastroRM(CadastroRM cadastroRM) {
	this.cadastroRM = cadastroRM;
}

public List<CadastroRM> getAllCadastroRM() {
	Session session = HibernateUtil.getCurrentSession();
	DAO<CadastroRM> dao = new DAO<CadastroRM>(session, CadastroRM.class);
	return dao.list();
}

public void carregaCadastroRM(ActionEvent event) {
	UIComponent comandLink = event.getComponent();
	UIParameter parameter = (UIParameter) comandLink
			.findComponent("editId");
	Long id = (Long) parameter.getValue();
	Session session = HibernateUtil.getCurrentSession();
	DAO<CadastroRM> dao = new DAO<CadastroRM>(session, CadastroRM.class);
	this.cadastroRM = dao.load(id);

}

public void excluirCadastroRM(ActionEvent event) {
	UIComponent comandLink = event.getComponent();
	UIParameter parameter = (UIParameter) comandLink
			.findComponent("editId");
	Long id = (Long) parameter.getValue();
	Session session = HibernateUtil.getCurrentSession();
	DAO<CadastroRM> dao = new DAO<CadastroRM>(session, CadastroRM.class);
	this.cadastroRM = dao.load(id);
	dao.deleta(cadastroRM);
	this.cadastroRM = new CadastroRM();

}

}
[/code]

Classe RMDAO:

[code]/**

  • @author Eduardo Bregaida

*/
package br.com.xxx.sgv.cadastro.rmdao;

import org.apache.log4j.Logger;
import org.hibernate.Session;

import br.com.xxx.sgv.cadastro.rm.CadastroRM;

public class RMDAO {

private Session session;

private Logger logger = Logger.getLogger(CadastroRM.class);

public RMDAO(Session session) {
	logger.info("Construtor" + session);
	this.session = session;

}

/**
 * @verifica salva novos dados no sistema
 */
public void salvaDados(CadastroRM cadastroRM) {
	session.saveOrUpdate(cadastroRM);
}

/**
 * @verifica exclui os dados do sistema
 */
public void excluiDados(CadastroRM cadastroRM) {
	session.delete(cadastroRM);
}

@SuppressWarnings("unchecked")
public CadastroRM selecionaDados(CadastroRM cadastroRM) {
	return (CadastroRM) session.load(CadastroRM.class, cadastroRM.getId());
}

}
[/code]

CadastroVisita.jsp

[code]<%@ page contentType=“text/html; charset=UTF-8” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://myfaces.apache.org/tomahawk” prefix=“t” %>

Cadastro de Visita

[/code]

É isso, o problema tá q o selectOneMenu dá um pau e gera akeles erros, se eu tiro ele a pagina abre normalmente…
:frowning:

Achei, era essa linha aki q eu n tinha feito cast pra String:

SelectItem selectItem = new SelectItem(String.valueOf(cadastroRM.getId()), cadastroRM.getNomeRM());

:smiley:

o seu metodo nao eh getRM, eh getRMS:

 public List<SelectItem> getRMS() {

por isso o jsp nao acha

[quote=sergiousp]o seu metodo nao eh getRM, eh getRMS:

 public List<SelectItem> getRMS() {

por isso o jsp nao acha[/quote]

Heheheh n era isso nao Sergiao, é q nakele primeiro fonte q eu mandei, depois eu alterei varias vezes, era por causa do cast de String, vc já havia me dito qdo me ensinou isso na Caelum, é q quase nao uso comboBox e acabei esquecendo rsss, mas tá ok já. VLWWWW

é verdade… esse negocio de passar String sendo q o
metodo recebe Object é terrivel

[quote=sergiousp]é verdade… esse negocio de passar String sendo q o
metodo recebe Object é terrivel[/quote]

Espero q arrumem na versão 2.0 do JSF, tô tentando entrar na JSR mas ainda nao me deram a resposta :frowning:
Queria ajudar, tem mtas coisas q tao ruins, alem dessa tbm tem outros casts bizarros…

Exemplo:

public void salvar(ActionEvent actionEvent) { Session session = HibernateUtil.getCurrentSession(); DAO<CadastroRM> cadastroRMDao = new DAO<CadastroRM>(session, CadastroRM.class); long id = Long.parseLong(htmlSelectOneMenuVisita.getValue().toString()); CadastroRM cadastroRM = cadastroRMDao.load(id); cadastroVisita.setCadastroRM(cadastroRM); DAO<CadastroVisita> dao = new DAO<CadastroVisita>(session, CadastroVisita.class); dao.salveOrUpdate(this.cadastroVisita); this.cadastroVisita = new CadastroVisita(); }

ou

FacesContext facesContext = FacesContext.getCurrentInstance(); VariableResolver variableResolver = facesContext.getApplication() .getVariableResolver(); // Tenho que passar o facesContext e também o managedBean return (RMHandler) variableResolver.resolveVariable(facesContext, "rmHandler");

Tem uns Casts sem noção nas versões 1.1 e 1.2… :lol:

[quote=sergiousp]é verdade… esse negocio de passar String sendo q o
metodo recebe Object é terrivel[/quote]

É que você pode por um converter no selectOneMenu ou ter um converter-for-class registrado.

Assim você pode ter um objeto proprietário como value do combobox sem problemas.

Engraçado mas acho meio sem sentido…
Se ele espera um Object e usa uma String para renderizar (se for esse o problema), podia chamar o toString(), por exemplo.

[quote=Flin][quote=sergiousp]é verdade… esse negocio de passar String sendo q o
metodo recebe Object é terrivel[/quote]

É que você pode por um converter no selectOneMenu ou ter um converter-for-class registrado.

Assim você pode ter um objeto proprietário como value do combobox sem problemas.[/quote]

É mas suja o código, sei lá… bizarro, como o Sergio flw, ele espera Object… :smiley:

Estranho ter dado o pau por não ter o cast/valueof de String.
Que eu me lembre eu sempre vi ele chamar o toString dos objetos (claro que se o teu getId ali retornar nulo, um erro vai subir), mas talvez seja o fato de que eu uso o Facelets e o view handler dele é mais ninja :slight_smile:

Mas entendi o ponto de vocês, passar um Objeto e ele mesmo não por como String é bizarro.

[quote=Flin]Estranho ter dado o pau por não ter o cast/valueof de String.
Que eu me lembre eu sempre vi ele chamar o toString dos objetos (claro que se o teu getId ali retornar nulo, um erro vai subir), mas talvez seja o fato de que eu uso o Facelets e o view handler dele é mais ninja :slight_smile:

Mas entendi o ponto de vocês, passar um Objeto e ele mesmo não por como String é bizarro.[/quote]

Hehehe agora pegou o espirito da coisa, ele deve receber um Object ali e uma String, eu passei 2 Strings e ele nao dá pau, só em tempo de execução, mas o fato é q isso é bizarro msm rs
Facelets, bom deveria ter usado, dai n daria tantos problemas rs :smiley: