myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Kienenberger <mkien...@gmail.com>
Subject Re: <t:selectOneMenu>: value is not a valid option
Date Wed, 22 Jul 2009 17:17:49 GMT
Maybe :)

I've never tried it that way, but it sounds reasonable.  However, I've
always wanted a more concrete type for my accessors than Number when
dealing with integer values.


On Wed, Jul 22, 2009 at 12:58 PM, Volker Weber<v.weber@inexso.de> wrote:
> 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 <mkienenb@gmail.com>:
>> 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<rafael@santini.eti.br> 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" <v.weber@inexso.de>
>>> To: "MyFaces Discussion" <users@myfaces.apache.org>
>>> 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 <rafael@santini.eti.br>:
>>>>
>>>> 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
>

Mime
View raw message