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<[email protected]> 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 <[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 >

