Problema SelectOneMenu JSF2.0

3 respostas
C

Meus Caros,

Estou há algum tempo empacado na criação de uma caixa de combinação utilizando o SelectOneMenu (JSF 2.0 - Eclise - MySQL). A caixa é carregada normalmente, é possível selecionar o opção desejada, mas quando clico no botão GRAVAR, além de não executar a ação, a opção disponibilizada passa a ser a última Abaixo eu coloquei também o Stack Trace relativo à pendência em questão, onde é possível verificar que não é selecionado nenhuma UF, daí o motivo da falha da gravação. Já li alguns tópicos sobre conversão mas ainda não consegui entender seu funcionamento. Se alguém puder me ajudar ficarei imensamente agradecido.

Cláudio RJ

Cadempr.jsp

<h:selectOneMenu id="cmbUF" value="#{EmpresaBean.empresa.ufempr}" style="width:50px;" >		
<f:selectItems value="#{UFBean.lista}"
	var="item"
	itemValue="#{item.iduf}"
	itemLabel="#{item.uf}"/>				
</h:selectOneMenu>

UFBean.java

package manager;
import java.util.List;

import javax.faces.bean.*;
import entity.*;

@ManagedBean(name="UFBean")
@RequestScoped
public class UFBean {
	
	private UF uf = new UF();
	private List<UF> lista;
	
	public List<UF> getLista(){
		
		UFRN ufRN = new UFRN();
		this.lista = ufRN.listar();		
		return this.lista;
		
	}	

	public UF getUf() {
		return uf;
	}

	public void setUf(UF uf) {
		this.uf = uf;
	}
	

}

An Error Occurred:
null source
+- Stack Trace
java.lang.IllegalArgumentException: null source
at java.util.EventObject.(Unknown Source)
at javax.faces.event.SystemEvent.(SystemEvent.java:67)
at javax.faces.event.ComponentSystemEvent.(ComponentSystemEvent.java:69)
at javax.faces.event.PostRestoreStateEvent.(PostRestoreStateEvent.java:69)
at com.sun.faces.lifecycle.RestoreViewPhase.deliverPostRestoreStateEvent(RestoreViewPhase.java:256)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:245)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:16)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
+- Component Tree

+- Scoped Variables
Request Parameters
Name
Value
form2
form2
form2:cmbUF
[1,AC, 2,AL, 3,AM, 4,AP, 5,BA, 6,CE, 7,DF, 8,ES, 9,GO, 10,MA, 11,MG, 12,MS, 13,MT, 14,PA, 15,PB, 16,PE, 17,PI, 18,PR, 19,RJ, 20,RN, 21,RO, 22,RR, 23,RS, 24,SC, 25,SE, 26,SP, 27,TO]
form2:j_id_jsp_1042500376_38
on
form2:j_id_jsp_1042500376_42
on
form2:j_id_jsp_1042500376_44
Gravar
form2:txtBairro
TAQUARA
form2:txtCep
21.750-000
form2:txtCidade
RIO DE JANEIRO
form2:txtCnpj
00.360.305/0001-00
form2:txtCompl
LJ A
form2:txtContato
Fulano
form2:txtEmail
[email removido]
form2:txtEmpr
CAIXA ECONÔMICA FEDERAL
form2:txtEnd
AV NELSON CARDOSO
form2:txtFax
([telefone removido]
form2:txtNr
1149
form2:txtTel
([telefone removido]
View Attributes
Name
Value
None
Request Attributes
Name
Value
None
Flash Attributes
Name
Value
None
Session Attributes
Name
Value
None
Application Attributes
Name
Value
csfcff
com.sun.faces.context.flash.ELFlash@1480773

3 Respostas

leorbarbosa

Aonde você instanciou o arrayList ?

C

Aí vai o código

UFRN.java

package entity;

import java.util.List;
import persistence.DAOFactory;
import persistence.UFDAO;

public class UFRN {
	
	private UFDAO ufDAO;
	
	public UFRN(){
		this.ufDAO = DAOFactory.criarUFDAO();
	}	
	
	public List<UF> listar(){
		
		return this.ufDAO.listar();
	}	

}

UFDAO.java

package persistence;

import java.util.List;
import entity.UF;

public interface UFDAO {
	
	public List<UF> listar();

}
jokacwb

O <f:selectItems pede uma lista de selectItems, para usar direto o objeto como vc está tentando, vc vai
precisar de um convert da uma lida neste post http://www.guj.com.br/prepost/244135/1263169/duvida-resolvido nele eu passei um exemplo completo de como montar um SelectOneMenu usando uma lista de objetos com seu respectivo convert.

Criado 10 de junho de 2011
Ultima resposta 10 de jun. de 2011
Respostas 3
Participantes 3