Tentando popular selectOneMenu

22 respostas
F

Ola pessoal bom dia a tds, estou tentando popular um selectOneMenu e estou tendo mta dificuldade,lembrando que sou nova no java
se alguem puder me dar umas dicas fico mto grata bjos

private ArrayList getLista() {  
		     lista = new ArrayList(); 		    
		    Cliente cliente; 		    
		    IDaoContato idao = new daoContato();
		    ListDataModel	resultado = new ListDataModel(idao.todosClientes());		   
		    for(int i=0;i<=resultado.getRowCount();i++){ 
		    	resultado.setRowIndex(i);
		    	//while(resultado.getRowIndex()>0) { 
		       cliente = (Cliente)resultado.getRowData();  
		       SelectItem item = new SelectItem(cliente, cliente.getNome());  
		       lista.add(item);  
		     
		   }  
		   return lista;  
		   }

O que esta de errado aqui eu estou seguindo exemplos que peguei na net ta dando este erro:

javax.servlet.ServletException: Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(j_id_jsp_1851993840_8).  Found null.
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

java.lang.IllegalArgumentException: Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(j_id_jsp_1851993840_8).  Found null.

Abraços

22 Respostas

M

O método tem que ser public para o JSF

Isso:

private ArrayList getLista() {

Teria que ser assim

public ArrayList getLista() {

Aproveita e usa o Generics para evitar erros

public List<SelectItem> getLista(){
F

ola Mark_Ameba obrigada pela ajuda fiz como vc mostrou mas ta dando este erro aqui agora:

javax.servlet.ServletException: /FContato.jsp(24,10) '#{contato.lista}' Property 'lista' not found on type control.ControlContato
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

org.apache.jasper.el.JspPropertyNotFoundException: /FContato.jsp(24,10) '#{contato.lista}' Property 'lista' not found on type control.ControlContato

e eu to usando o menu assim:

<h:selectOneMenu value="#{contato.contato.cliente}" style=" width : 141px;">
		    			 <f:selectItems id="combo" value="#{contato.getLista}"/>
		    			</h:selectOneMenu>

e o metodo ficou assim:

public ArrayList<SelectItem> getLista() {  
		     lista = new ArrayList<SelectItem>(); 		    
		    Cliente cliente; 		    
		    IDaoContato idao = new daoContato();
		    ListDataModel	resultado = new ListDataModel(idao.todosClientes());		   
		    for(int i=0;i<=resultado.getRowCount();i++){ 
		    	resultado.setRowIndex(i);
		    	//while(resultado.getRowIndex()>0) { 
		       cliente = (Cliente)resultado.getRowData();  
		       SelectItem item = new SelectItem(cliente, cliente.getNome());  
		       lista.add(item);  
		     
		   }  
		   return lista;  
		   }

Se puder me ajudar fico agradecida pois ja fucei na web e nao consigo acertar isso, valew bjos.

F

UP rapaziada to precisando de um Up.
nao vai nem com bomba alguem tem uma ideia?Ou ja passou por isso?
bjos
olha o erro aew.

javax.servlet.ServletException: /FContato.jsp(24,10) '#{contato.lista}' Error reading 'lista' on type control.ControlContato
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

org.apache.jasper.el.JspELException: /FContato.jsp(24,10) '#{contato.lista}' Error reading 'lista' on type control.ControlContato
L

Olá fbarreto,

Oque você está fazendo não está totalmente correto, na verdade um SelectItem recebe (no seu caso),
SelectItem(valorObjeto,rótuloObjeto), sem muitos rodeios seu código ficaria da seguinte forma:

private static ArrayList getLista() throws Exception {    
        ArrayList<SelectItem> lista = new ArrayList<SelectItem>();             
        Cliente cliente;
         IDaoContato idao = new daoContato();  
         ListDataModel   resultado = new ListDataModel(idao.todosClientes());      
         for(Cliente teste : resultado){      
              
          SelectItem item = new SelectItem(teste.getId(), teste.getNome());
          //você não pode passar um Objeto para um selectItem, 
         //no caso eu estou passando o ID do seu cliente
           lista.add(item);    
           
        }    
        return lista;    
      }

espero que ajude !!!

F

obrigada pela ajuda lord mas este metodo nao compila da este erro

Can only iterate over an array or an instance of java.lang.Iterable na variavel resultado do for.

o que seria isto?

L

Ok !!

vamos lá !!!

o seu método

idao.todosClientes()

está funcionando corretamente ?

F

sim o metodo esta blz
este é o metodo:

public List<Cliente> todosClientes() {		
		Session session = ConSys.getSessionFactory().openSession();
		List<Cliente> list = session.createQuery("from Cliente").list();
		return list;	}
L

Certo…vamos por parte… tenta fazer assim :

private  List<SelectItem> getLista() throws Exception {      
         List<SelectItem> lista = new Linkedlist<SelectItem>();               
         Cliente cliente;  
         IDaoContato idao = new daoContato();    
         List<SelectItem> resultado = (List<SelectItem>) idao.todosClientes();        
          for(Cliente teste : resultado){        
                 
            SelectItem item = new SelectItem(teste.getId(), teste.getNome());  
            lista.add(item);      
              
          }      
        return lista;      
   }

fico no aguardo …

L

ops !!! perai !!!

L

Tenta assim :

private  List<SelectItem> getLista() throws Exception {        
          List<SelectItem> lista = new Linkedlist<SelectItem>();                 
          Cliente cliente;    
          IDaoContato idao = new daoContato();      
          List<Cliente> resultado = (List<Cliente>) idao.todosClientes();          
           for(Cliente teste : resultado){          
                    
             SelectItem item = new SelectItem(teste.getId(), teste.getNome());    
             lista.add(item);        
                 
           }        
         return lista;        
}
F

blz, o for nao compila da este erro no codigo, mas exatamente no resultado do for:

for(Cliente teste : [color=red]resultado[/color])

Type mismatch: cannot convert from element type SelectItem to Cliente
L

Olha o ultimo post que eu coloquei !!!

F

blz mas esta dando o mesmo erro:

# javax.servlet.ServletException: /FContato.jsp(24,10) '#{contato.lista}' Error reading 'lista' on type control.ControlContato  
#     javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)  
#     org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)  
#     org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)  
#     org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)  
#   
#   
# root cause   
#   
# org.apache.jasper.el.JspELException: /FContato.jsp(24,10) '#{contato.lista}' Error reading 'lista' on type control.ControlContato

vou reiniciar a ide pra ver se nao e algum pau da ide, o metodo tem que ser private mesmo ?

L

Certo …

Se o “for” funcionou posta seu jsp … pra darmos uma analisada !!!

F

é nao funfo mesmoda este erro:

javax.servlet.ServletException: /FContato.jsp(24,10) '#{contato.lista}' Property 'lista' not readable on type java.util.ArrayList
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

org.apache.jasper.el.JspPropertyNotFoundException: /FContato.jsp(24,10) '#{contato.lista}' Property 'lista' not readable on type java.util.ArrayList

o selectoneOneMenu

<h:selectOneMenu value="#{contato.contato.cliente}" style=" width : 141px;">
		    			 <f:selectItems value="#{contato.lista}"/>
		    			</h:selectOneMenu>
F

contato.jsp

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich" %>
<html>
	<head>
		<title></title>
		<link rel="StyleSheet" type="text/css" href="css/tabelas.css" media="screen" >
	
	</head>
	<body>
		<f:view>
		    <h:form>
		    	<rich:panel>
		    		<f:facet name="header">
		    			<h:outputText value="Cadastro de Contatos"></h:outputText>   		
		    		</f:facet>
		    		<h:panelGrid columns="2" width="471">
		    		
		    			<h:outputText value="#{msg.Codigo}"></h:outputText>
		    			<h:inputText value="#{contato.contato.codigoContato}"></h:inputText>
		    			<h:outputText value="#{msg.cliente}"></h:outputText>
		    			
		    			<h:selectOneMenu value="#{contato.contato.cliente}" style=" width : 141px;">
		    			 <f:selectItems value="#{contato.lista}"/>
		    			</h:selectOneMenu>
		    			<h:outputText value="#{msg.nome}"></h:outputText>
		    			<h:panelGroup>
		    			<h:inputText value="#{contato.contato.nome}" required="true" requiredMessage="Digite o Nome do Contato!">
		    			
		    			</h:inputText>
		    			</h:panelGroup>
		    			<h:outputText value="#{msg.sobrenome}"></h:outputText>
		    			<h:inputText value="#{contato.contato.sobrenome}"></h:inputText>
		    			<h:outputText value="#{msg.setor}"></h:outputText>
		    			<h:inputText value="#{contato.contato.setor}"></h:inputText>
		    			<h:outputText value="#{msg.fone}"></h:outputText>
		    			<h:inputText value="#{contato.contato.fone}"></h:inputText>
		    			<h:outputText value="#{msg.ramal}"></h:outputText>
		    			<h:inputText value="#{contato.contato.ramal}"></h:inputText>
		    			<h:outputText value="#{msg.email}"></h:outputText>
		    			<h:inputText value="#{contato.contato.email}"></h:inputText>
		    			</h:panelGrid>
		    			<rich:separator id="sepButton" width="210" height="12"></rich:separator>
		    				    	
		    	</rich:panel>     
         
        <h:commandButton action="#{contato.novo}" value="Novo" styleClass="botoes">
         <rich:toolTip followMouse="true" direction="top-right" delay="200" styleClass="tooltip" style="width:250px">
            <span  style="white-space:nowrap">Adiciona um Novo contato.
            </span>
        </rich:toolTip>
        </h:commandButton>
        <h:commandButton action="#{contato.create}" value="Salvar" styleClass="botoes"></h:commandButton>
		    
		    
		    </h:form>
			
		</f:view>
	</body>	
</html>

esta é a pagina completa ela roda no servidor se eu tirar o selectOneMenu.

L

Agora sim Fernanda…

<h:selectOneMenu value="#{contato.contato.cliente}" style=" width : 141px;">  
  <f:selectItems value="#{contato.lista}"/>  
  </h:selectOneMenu>

Este seu codigo não vai dar certo, pq todo e qlqr “ListBox” no jsf é uma lista de SelectItem, e o objeto que está recebendo este parametro naum é um SelectItem, entaum vc poderia criar um objeto no seu ManegedBean do tipo selectItem para receber o item selecionado da lista.

e ficaria mais ou menos assim:

<h:selectOneMenu value="#{contato.contato.cliente.changeValue}" style=" width : 141px;">  
  <f:selectItems value="#{contato.lista}"/>  
  </h:selectOneMenu>

onde dentro da sua classe Cliente vc teria um objeto SelectItem

private SelectItem changeValue = new SelectItem();

tenta ae …

F

caraca agora funfo legal, mto obrigada nao sei com te agradecer se nao fosse vc nao teria conseguido bjao pra vc

R

to tendo o mesmo problema mas com SEAM…

No meu caso tenho suggestionbox + 2 combobox aninhados.

O Country vem preenchido no combobox(dropdownlist) e o state vazio…

12:08:34,922 ERROR [viewhandler] Error Rendering View[/page/user2.xhtml]

java.lang.IllegalArgumentException: Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(state).  Found null.

at com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:326)

at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:814)

at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280)

at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)

at org.jboss.seam.ui.util.cdk.RendererBase.renderChild(RendererBase.java:190)

at org.jboss.seam.ui.util.cdk.RendererBase.renderChildren(RendererBase.java:166)

at org.jboss.seam.ui.renderkit.ValidateAllRendererBase.doEncodeChildren(ValidateAllRendererBase.java:33)

at org.jboss.seam.ui.util.cdk.RendererBase.encodeChildren(RendererBase.java:92)

at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

at org.jboss.seam.ui.util.cdk.RendererBase.renderChild(RendererBase.java:186)

at org.jboss.seam.ui.util.cdk.RendererBase.renderChildren(RendererBase.java:166)

at org.jboss.seam.ui.renderkit.DecorateRendererBase.doEncodeChildren(DecorateRendererBase.java:152)

at org.jboss.seam.ui.util.cdk.RendererBase.encodeChildren(RendererBase.java:92)

at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)

at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:180)

at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:127)

at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)

at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)

at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:220)

at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:215)

at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)

at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)

at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)

at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)

at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)

at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)

at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)

at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)

at org.jboss.portletbridge.lifecycle.RenderResponsePhase.executePhase(RenderResponsePhase.java:58)

at org.jboss.portletbridge.lifecycle.LifecyclePhase.execute(LifecyclePhase.java:72)

at org.jboss.portletbridge.lifecycle.PortletLifecycle.render(PortletLifecycle.java:155)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:532)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)

at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)

at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)

at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)

at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)

at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)

at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)

at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)

at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)

at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)

at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)

at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

at java.lang.Thread.run(Thread.java:619)

12:08:35,000 INFO  [STDOUT] Hibernate:

select
G

Boa tarde, gostaria de aproveitar o Fórum que trata do mesmo problema que estou passando para pedir ajuda.
Bom, eu estou conseguindo popular normalmente, meu problema é para cadastrar o formulario, antes de popular
usando <h:inputText/> estava indo normalmente, agora não sei como pegar esse dado vindo do selectOpenMenu.
O estranho é que quando clico no Botão cadastrar que vai para a classe Controller, ele não da erro, mas tambem não
esta indo para este método cadastrar() simplesmente da um reload na pagina JSP.

Bom segue abaixo um resumo dos códigos.

Pagina JSP

&lt;f:view&gt;
		&lt;h:form&gt;
			&lt;rich:tabPanel&gt;
				&lt;rich:tab label="Requisição de Compra Simples" style="width:650px" id="idRequisicao"&gt;
					&lt;h:outputLabel value="Data "&gt;&lt;/h:outputLabel&gt;&lt;rich:calendar value="#{requisicaoController.requisicao.data}" rendered="true"&gt;&lt;/rich:calendar&gt;
					&lt;h:outputLabel value="Projeto Finalidade "&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:400px;" id="txtProjetoFinalidade" value="#{requisicaoController.requisicao.projetoFinalidade}" rendered="true"&gt;&lt;/h:inputText&gt;
					&lt;h:outputLabel value="Area "&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtArea" value="#{requisicaoController.requisicao.area}" rendered="true"&gt;&lt;/h:inputText&gt;<br/>
					
					&lt;h:selectOneMenu required="true" value="#{centroCustoController.centroCusto.descricaoCentroCusto}"&gt;
						&lt;f:selectItems value="#{centroCustoController.centroCustos}"/&gt;
					&lt;/h:selectOneMenu&gt;
					
					&lt;h:outputLabel value="Requisitante "&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtRequisitante" value="#{requisicaoController.requisicao.requisitante}" rendered="true"&gt;&lt;/h:inputText&gt;
					&lt;h:outputLabel value="Responsavel pelo Departamento "&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:325px" id="txtResponsavelDepartamento" value="#{requisicaoController.requisicao.responsavelDepartamento}" rendered="true"&gt;&lt;/h:inputText&gt;<br/>
					&lt;h:outputLabel value="Projeto"&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtProjeto" value="#{requisicaoController.requisicao.projeto}" rendered="true"&gt;&lt;/h:inputText&gt;
					&lt;h:outputLabel value="Rúbrica"&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtRubrica" value="#{requisicaoController.requisicao.rubrica}" rendered="true"&gt;&lt;/h:inputText&gt;
					&lt;h:outputLabel value="Item do BP"&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtItemBP" value="#{requisicaoController.requisicao.itemDoBP}" rendered="true"&gt;&lt;/h:inputText&gt;
					
					&lt;h:inputTextarea style="width:400px; height:250px;" id="txtJustificativa" /&gt;
					&lt;h:commandButton id="btnCadastrar" value="Cadastrar" action="#{requisicaoController.cadastrar}" rendered="true"&gt;&lt;/h:commandButton&gt;
				&lt;/rich:tab&gt;
			&lt;/rich:tabPanel&gt;	
		&lt;/h:form&gt;
	&lt;/f:view&gt;

A classe ControllerCentroCusto

package br.com.mam.managed;

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

import javax.faces.model.SelectItem;

import com.sun.org.apache.regexp.internal.recompile;

import br.com.mam.dao.Dao;
import br.com.mam.factory.HibernateUtil;
import br.com.mam.modelo.hibernate.CentroCusto;

public class CentroCustoController {
	
	private CentroCusto centrocusto = new CentroCusto();
	private List&lt;CentroCusto&gt; centrocustos = new ArrayList&lt;CentroCusto&gt;();
	
	public String cadastrar() {
		Dao&lt;CentroCusto&gt; daoCentroCusto = new Dao&lt;CentroCusto&gt;(HibernateUtil.openSession(), CentroCusto.class);
		daoCentroCusto.salvar(centrocusto);
		return "sucesso";
	}
	
	public CentroCusto getCentroCusto() {
		return centrocusto;
	}
	
	public void setCentroCusto(CentroCusto centrocusto) {
		this.centrocusto = centrocusto;
	}
	
	public List&lt;SelectItem&gt; getCentroCustos() {
		Dao&lt;CentroCusto&gt; daoCentroCusto = new Dao&lt;CentroCusto&gt;(HibernateUtil.openSession(), CentroCusto.class);
		List&lt;SelectItem&gt; itens = new ArrayList&lt;SelectItem&gt;(); 
		for (CentroCusto cc: daoCentroCusto.listarTudo()){
			itens.add(new SelectItem(cc.getId(), cc.getDescricaoCentroCusto()));
		}
		return itens;
	}
	
	

}

A classe RequisicaoController

package br.com.mam.managed;

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

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

import org.apache.catalina.connector.Request;

import br.com.mam.dao.Dao;
import br.com.mam.factory.HibernateUtil;
import br.com.mam.modelo.hibernate.Perfil;
import br.com.mam.modelo.hibernate.Requisicao;

public class RequisicaoController {
	private Requisicao requisicao  = new Requisicao();;
	private List&lt;Requisicao&gt; requisicoes;
	
	public String cadastrar() {
		Dao&lt;Requisicao&gt; daoRequisicao = new Dao&lt;Requisicao&gt;(HibernateUtil.openSession(), Requisicao.class);
		daoRequisicao.salvar(requisicao);
		return "sucessoRequisicao";
	}
	
	public Requisicao getRequisicao() {
		return requisicao;
	}
	
	public void setRequisicao(Requisicao requisicao) {
		this.requisicao = requisicao;
	}
	
	public List&lt;Requisicao&gt; getRequisicoes() {
		Dao&lt;Requisicao&gt; daoRequisicao = new Dao&lt;Requisicao&gt;(HibernateUtil.openSession(), Requisicao.class);
		return daoRequisicao.listarTudo();
	}
	
	public void escolheUsuario(ActionEvent event) {
		UIComponent link = event.getComponent();
		UIParameter param = (UIParameter) link.findComponent("idRequisicao");
		Integer id = (Integer)param.getValue();
		Dao&lt;Requisicao&gt; daoRequisicao = new Dao&lt;Requisicao&gt;(HibernateUtil.openSession(), Requisicao.class);
		this.requisicao = daoRequisicao.get(id);
	}
}

Creio que deve faltar algo no selectOneMenu para que eu consiga cadastrar o item selecionado.

Aguardo e Muito Obrigado.

G

Boa tarde, gostaria de informar que esta resolvido meu problema,

Utilizei uma variavel dentro da Classe RequisicaoController como int.
E fiz um for para procurar o item selecionado e inserir na Classe requisição.

Segue abaixo o código com a resolução:

Classe RequisicaoController
package br.com.mam.managed;

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

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

import br.com.mam.dao.Dao;
import br.com.mam.factory.HibernateUtil;
import br.com.mam.modelo.hibernate.CentroCusto;
import br.com.mam.modelo.hibernate.Requisicao;

	public class RequisicaoController {	
	private Requisicao requisicao  = new Requisicao();;
	private List&lt;Requisicao&gt; requisicoes;
	private int centroCustoSelecionado;
	
	public String cadastrar() {
		Dao&lt;Requisicao&gt; daoRequisicao = new Dao&lt;Requisicao&gt;(HibernateUtil.openSession(), Requisicao.class);
		Dao&lt;CentroCusto&gt; daoCentroCusto = new Dao&lt;CentroCusto&gt;(HibernateUtil.openSession(), CentroCusto.class);
		
		//Teste para insert centrocusto
		List&lt;SelectItem&gt; itens = new ArrayList&lt;SelectItem&gt;(); 
		for (CentroCusto cc: daoCentroCusto.listarTudo()){
			if(cc.getId() == centroCustoSelecionado){
				requisicao.setCentroCusto(cc.getDescricaoCentroCusto());
			}
		}
		
		System.out.println("Numero Centro de Custo: "+centroCustoSelecionado);
		daoRequisicao.salvar(requisicao);
		return "sucessoRequisicao";
	}
	
	public int getCentroCustoSelecionado() {
		return centroCustoSelecionado;
	}



	public void setCentroCustoSelecionado(int centroCustoSelecionado) {
		this.centroCustoSelecionado = centroCustoSelecionado;
	}



	public Requisicao getRequisicao() {
		return requisicao;
	}
	
	public void setRequisicao(Requisicao requisicao) {
		this.requisicao = requisicao;
	}
	
	public List&lt;Requisicao&gt; getRequisicoes() {
		Dao&lt;Requisicao&gt; daoRequisicao = new Dao&lt;Requisicao&gt;(HibernateUtil.openSession(), Requisicao.class);
		return daoRequisicao.listarTudo();
	}
	
	public void escolheUsuario(ActionEvent event) {
		UIComponent link = event.getComponent();
		UIParameter param = (UIParameter) link.findComponent("idRequisicao");
		Integer id = (Integer)param.getValue();
		Dao&lt;Requisicao&gt; daoRequisicao = new Dao&lt;Requisicao&gt;(HibernateUtil.openSession(), Requisicao.class);
		this.requisicao = daoRequisicao.get(id);
	}
}
CentroCustoController
package br.com.mam.managed;

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

import javax.faces.model.SelectItem;

import com.sun.org.apache.regexp.internal.recompile;

import br.com.mam.dao.Dao;
import br.com.mam.factory.HibernateUtil;
import br.com.mam.modelo.hibernate.CentroCusto;

public class CentroCustoController {
	
	private CentroCusto centrocusto = new CentroCusto();
	private List&lt;CentroCusto&gt; centrocustos = new ArrayList&lt;CentroCusto&gt;();
	
	public String cadastrar() {
		Dao&lt;CentroCusto&gt; daoCentroCusto = new Dao&lt;CentroCusto&gt;(HibernateUtil.openSession(), CentroCusto.class);
		daoCentroCusto.salvar(centrocusto);
		return "sucesso";
	}
	
	public CentroCusto getCentroCusto() {
		return centrocusto;
	}
	
	public void setCentroCusto(CentroCusto centrocusto) {
		this.centrocusto = centrocusto;
	}
	
	public List&lt;SelectItem&gt; getCentroCustos() {
		Dao&lt;CentroCusto&gt; daoCentroCusto = new Dao&lt;CentroCusto&gt;(HibernateUtil.openSession(), CentroCusto.class);
		List&lt;SelectItem&gt; itens = new ArrayList&lt;SelectItem&gt;(); 
		for (CentroCusto cc: daoCentroCusto.listarTudo()){
			itens.add(new SelectItem(cc.getId(), cc.getDescricaoCentroCusto()));
		}
		return itens;
	}
	
	

}
e no JSP ficou:
&lt;%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %&gt;
&lt;%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%&gt;
&lt;%@taglib uri="http://richfaces.org/rich" prefix="rich" %&gt;
&lt;%@taglib uri="http://richfaces.org/a4j" prefix="a4j" %&gt;

&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
&lt;title&gt;Criar Requisição de Compra Simples&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;f:view&gt;
		&lt;h:form&gt;
			&lt;rich:tabPanel&gt;
				&lt;rich:tab label="Requisição de Compra Simples" style="width:650px" id="idRequisicao"&gt;
					&lt;h:outputLabel value="Data "&gt;&lt;/h:outputLabel&gt;&lt;rich:calendar value="#{requisicaoController.requisicao.data}" rendered="true"&gt;&lt;/rich:calendar&gt;
					&lt;h:outputLabel value="Projeto Finalidade "&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:400px;" id="txtProjetoFinalidade" value="#{requisicaoController.requisicao.projetoFinalidade}" rendered="true"&gt;&lt;/h:inputText&gt;
					&lt;h:outputLabel value="Area "&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtArea" value="#{requisicaoController.requisicao.area}" rendered="true"&gt;&lt;/h:inputText&gt;<br/>
					&lt;!-- Populando o Item referente a Centro de Custo --&gt;
					&lt;h:selectOneMenu required="true" value="#{requisicaoController.centroCustoSelecionado}"&gt;
						&lt;f:selectItems value="#{centroCustoController.centroCustos}"/&gt;
					&lt;/h:selectOneMenu&gt;
					
					&lt;h:outputLabel value="Requisitante "&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtRequisitante" value="#{requisicaoController.requisicao.requisitante}" rendered="true"&gt;&lt;/h:inputText&gt;
					&lt;h:outputLabel value="Responsavel pelo Departamento "&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:325px" id="txtResponsavelDepartamento" value="#{requisicaoController.requisicao.responsavelDepartamento}" rendered="true"&gt;&lt;/h:inputText&gt;<br/>
					&lt;h:outputLabel value="Projeto"&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtProjeto" value="#{requisicaoController.requisicao.projeto}" rendered="true"&gt;&lt;/h:inputText&gt;
					&lt;h:outputLabel value="Rúbrica"&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtRubrica" value="#{requisicaoController.requisicao.rubrica}" rendered="true"&gt;&lt;/h:inputText&gt;
					&lt;h:outputLabel value="Item do BP"&gt;&lt;/h:outputLabel&gt;&lt;h:inputText style="width:300px" id="txtItemBP" value="#{requisicaoController.requisicao.itemDoBP}" rendered="true"&gt;&lt;/h:inputText&gt;
					
					&lt;h:inputTextarea style="width:400px; height:250px;" id="txtJustificativa" value="#{requisicaoController.requisicao.justificativa}"/&gt;
					&lt;h:commandButton id="btnCadastrar" value="Cadastrar" action="#{requisicaoController.cadastrar}" rendered="true"&gt;&lt;/h:commandButton&gt;
				&lt;/rich:tab&gt;
			&lt;/rich:tabPanel&gt;	
		&lt;/h:form&gt;
	&lt;/f:view&gt;
&lt;/body&gt;
&lt;/html&gt;

Abraços

D

Valeeu Lord. Depois de tanto tempo sua explicação me ajudou !

Criado 29 de janeiro de 2008
Ultima resposta 19 de jul. de 2012
Respostas 22
Participantes 6