Problema com selectOneMenu JSF [Resolvido]

14 respostas
Eduardo_Bregaida

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.

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;
	}
<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>

14 Respostas

Eduardo_Bregaida

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

Pra piorar agora ta dando essa msg:

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)
sergiolopes

ele ta dizendo que ta com erro no jsp!

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

tenta ver se acha algum = faltando no jsp

Eduardo_Bregaida
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

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

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

public List<SelectItem> getRM() {
		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;

	}
Eduardo_Bregaida

Acho q fica mais facil se eu mostrar os fontes.

Classe CadastroVisita:

/**
 * @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;
	}

}
Classe VisitaHandler:
/**
 * @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;
	}

}
Classe VisitaDAO:
/**
 * @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());
	}

}
Classe CadastroRM:
/**
 * @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;
	}

}
Classe RMHandler:
/**
 * @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();

	}

}
Classe RMDAO:
/**
 * @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());
	}

}
CadastroVisita.jsp
<%@ 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" %>

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
		<link href="css/master.css" rel="stylesheet" type="text/css">
		<link href="../css/master.css" rel="stylesheet" type="text/css">
		<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
		<title>Cadastro de Visita</title>
	</head>
	<body>
		<f:view>
			<h:form>
			 <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:" styleClass="titulo_campos"/>
					<h:selectOneMenu binding="#{visitaHandler.htmlSelectOneMenuVisita}">
                		<f:selectItems value="#{visitaHandler.RMS}"/>
                	</h:selectOneMenu>
				<!-- ActionListener pega o evento da tela-->
               <h:commandButton value="Gravar" actionListener="#{visitaHandler.salvar}"/>
             </t:panelGrid>
			</h:form>
		</f:view>
	</body>
</html>

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

Eduardo_Bregaida

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

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

:smiley:

sergiolopes

o seu metodo nao eh getRM, eh getRMS:

public List<SelectItem> getRMS() {

por isso o jsp nao acha

Eduardo_Bregaida

sergiousp:
o seu metodo nao eh getRM, eh getRMS:

public List<SelectItem> getRMS() {

por isso o jsp nao acha

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

sergiolopes

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

Eduardo_Bregaida

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

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:

F

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

É 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.

sergiolopes

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.

Eduardo_Bregaida

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

É 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.

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

F

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.

Eduardo_Bregaida

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.

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:

Criado 14 de setembro de 2007
Ultima resposta 16 de set. de 2007
Respostas 14
Participantes 3