[JSF] - Duvida Lista de SelectItem

Bom no sistema que to criando pensei em fazer, uma classe que tivesse alguns metodos que vou usar em alguns formularios…

Tipo um que carrega uma lista de sexos {Masculino, Feminino}…
ou de Estados…

mas comigo não da mto certo…
Eu dei uma lida, mas parece que ele retorna um Integer…

Por isso que fica dando erro de casting de String to Integer…

Exemplo

public List<SelectItem> getSexoToComboBox(){
		lista.add(new SelectItem(new Integer(1), "Masculino"));
		lista.add(new SelectItem(new Integer(2), "Feminino"));
		
		return lista;
	}

To querendo jogar isso no meu SelectOneMenu, Na Propriedade Sexo da Minha Classe PessoaFisica

private String sexo;

Alguem sabe como resolver esse problema???

Obrigado.


SelectItem selectItem = new SelectItem();
selectItem .setValue(new Integer(1));  //Aqui vc define o valor que seu atributo vai receber
selectItem .setLabel( "Masculino");
lista.add(selectItem);  

O que vc fez é equivalente a isso acima. Então o atributo sexo deveria ser do tipo Integer !!! Entendeu.

Talvez isto te ajude. :smiley:

[code] <h:selectOneMenu id=“situacao”
styleClass=“combos”
value="#{Bean.propriedadeSelecionadaNoCombo}" >
<f:selectItems value="#{Bean.FuncaoCarregarCombos}"/>

&lt;/h:selectOneMenu&gt;

[/code]

Abraços
Wanderson 8)

Opa viajei no post anterior.

Acho que para retornar para a Pagina tem que ser como String.
Depois ele converte para Integer quando voltar para a propriedade do BEAN.

Mande como String para ver se funfa.

Abraços
Wanderson 8)

Então Giuliano, Mas eh q eu ja tinha tentado Tipo…

lista.add(new SelectItem("M", "Masculino"));

e Mesmo Assim tava Dando Erro por isso q eu fui apelando pra otras Coisas…
Será q tem q ter algum Conversor ou coisa parecida???/

Saudações!!!

Tente usar assim(do jeito que você estava fazendo):

lista.add(new SelectItem("M", "Masculino")); 

e na pagina utilize:

<h:selectOneMenu id="sexo" value="#{seuBean.sexo}">
     <f:selectItems value="#{seuBean.sexoToComboBox}"/>
</h:selectOneMenu>

Espero ter ajudado …
Abraços

Cara posta ai o erro que ta dando.

O código da JSP e o codigo do Bean…

Daí tento ajudar.
Isto não tem muito segredo não.

Abraços
Wanderson 8)

Ta ai o Erro…

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:807)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:280)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:856)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:946)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)

E o Codigo…


<select jsfc="h:selectOneMenu" value="#{pFisicaMB.pessoaFisica.sexo}"
      		class="forms_cadastro" name="sexo" size="1" id="sexo" style="position:absolute; left:438px; top:150px; width:126px; font-family:Arial; font-size:13px; color:#4B4B4B; z-index: 27; background-color: #FFFFFF;
      			layer-background-color: #FFFFFF; border: 1px none #000000;" tabindex="8" >
				
   	  </select>

Valeo

O JSF tem conversores explícitos para os tipos String, Integer, Long, etc…

Se vc esta mandando um String no value vai chegar um String no ManagedBean.

Como vc criou a página ? Esse código gerado do JSF é ilegível.

Eh do Designer, eu tenho q ajeitar ;X…

vem assim pra mim

po…tudo bem q isso é do seu designer…mas cadê o que vc fez ???

já deram a dica lá em cima

&lt;h:selectOneMenu id="sexo" value="#{managedBean.sexo}"  &gt;  
    &lt;f:selectItems value="#{managedBean.sexoToComboBox}"/&gt;  
&lt;/h:selectOneMenu&gt; 

Consegui sabia q era desse jeito…
Tem o Size=“1”,
que ta atrapalhando tirei ele ai funciono, mto obrigado a todos que me ajudaram :smiley:

<select jsfc="h:selectOneMenu" value="#{pFisicaMB.pessoaFisica.sexo}"

ta aki ueh…

hahahha…tendi tendi…pensei que vc estive fazendo em JSF…mas aparentemente tem uma ferramenta RAD ou algo parecido por trás…que vai gerar o JSF pra vc.

falows

Nao, eh Facelets, por que como o designer cria o layout…
Se fosse utilizar JSF Puro, eu teria que mudar todo componentes dele, assim com o facelets eh so utilizar essa tag “jsfc” que assume o papel de um componente do JSF. :smiley:

Po cara…aqui a gente teve q ensinar a Designer a criar os componentes (hahahahah)… Eu não conhecia essa “facilidade” do facelets…em todo caso mesmo assim acho que fica confuso pro coitado do designer.