Tentando popular selectOneMenu

22 respostas
fbarreto

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

Marky.Vasconcelos

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(){
fbarreto

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.

fbarreto

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
Lord

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

fbarreto

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?

Lord

Ok !!

vamos lá !!!

o seu método

idao.todosClientes()

está funcionando corretamente ?

fbarreto

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

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 …

Lord

ops !!! perai !!!

Lord

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

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
Lord

Olha o ultimo post que eu coloquei !!!

fbarreto

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 ?

Lord

Certo …

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

fbarreto

é 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>
fbarreto

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.

Lord

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 …

fbarreto

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
gilmar_soares

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.

gilmar_soares

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

daniel4613

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