Hi Mike,

didn't this mean changing the getter/setter from Integer to Number, as
suggested,  should help?


Regards,
    Volker

2009/7/21 Mike Kienenberger <[email protected]>:
> Rather than String, try using Long for your accessors.
>
> By default, accessors for literals must either be String or Long or Double.
>
> #{1} is a new Long(1), not a new Integer(1).
>
> Yes, a converter will work automatically, so if you were to provide
> #{something that evaluates to an integer}, then everything would work
> as you expect.   But the problem is that you're not generating
> Integers.
>
> But, again, El returns Longs "#{1}", Strings "1", and Doubles "#{1.1}"
> for literals, not Integers or any other type.
>
> So if you had a facelets toInt() method, you could do:
> "#{myFunction:toInteger(1)}"
>
> Your other option is to do what Rene suggests and provide a method
> that returns SelectItem<Label:String,Value:Integer> select items from
> your java code
>
> On Tue, Jul 21, 2009 at 1:04 PM, SANTINI, Rafael<[email protected]> wrote:
>> Hi Volker,
>>
>> The problem also occurrs with itemValue="#{1}".
>>
>> The solution was change the getter e setter to accept and return Strings:
>>
>> public String getOpcao() {
>>   return (opcao != null ? opcao.toString() : null);
>> }
>>
>> public void setOpcao(String opcao) {
>>   this.opcao = Integer.valueOf(opcao);
>> }
>>
>> But, is not there a converter for this case?
>>
>> Thank you,
>>
>> Rafael Santini
>>
>> ----- Original Message ----- From: "Volker Weber" <[email protected]>
>> To: "MyFaces Discussion" <[email protected]>
>> Sent: Tuesday, July 21, 2009 12:59 PM
>> Subject: Re: <t:selectOneMenu>: value is not a valid option
>>
>>
>> Hi Rafael,
>>
>> your itemValues are Strings, your bean expect Integer.
>>
>> you can change the getter and setter to accept and return Strings
>> or try itemValue="#{1}", you may need to change from Integer to Number than.
>>
>>
>> Regards,
>>   Volker
>>
>> 2009/7/21 SANTINI, Rafael <[email protected]>:
>>>
>>> Hi,
>>>
>>> I can't figure out why the following code results in "value is not a valid
>>> option":
>>>
>>> <h:messages/>
>>> <h:form>
>>> <t:selectOneMenu value="#{bean.opcao}" id="opcao">
>>> <f:selectItem itemLabel="Opção 1" itemValue="1"/>
>>> <f:selectItem itemLabel="Opção 2" itemValue="2"/>
>>> <f:selectItem itemLabel="Opção 3" itemValue="3"/>
>>> </t:selectOneMenu>
>>> <h:message for="opcao"/>
>>> <h:commandButton value="OK"/>
>>> </h:form>
>>>
>>> public class Bean {
>>>
>>> private Integer opcao;
>>>
>>> public Integer getOpcao() {
>>> return opcao;
>>> }
>>>
>>> public void setOpcao(Integer opcao) {
>>> this.opcao = opcao;
>>> }
>>>
>>> }
>>>
>>> Thanks,
>>>
>>> Rafael Santini
>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> inexso - information exchange solutions GmbH
>> Bismarckstraße 13      | 26122 Oldenburg
>> Tel.: +49 441 4082 356 |
>> FAX:  +49 441 4082 355 | www.inexso.de
>>
>>
>



-- 
inexso - information exchange solutions GmbH
Bismarckstraße 13      | 26122 Oldenburg
Tel.: +49 441 4082 356 |
FAX:  +49 441 4082 355 | www.inexso.de

Reply via email to