You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Safurudin Mahic <sa...@stud.aitel.hist.no> on 2007/06/27 11:30:38 UTC
Validation error with selectitems in latest Myfaces/Tomahawk
I'm having problems getting a correct form submittal with a simple
selectOneMenu in the latest MyFaces and TomaHawk.
After issuing the command button, I'm getting "Validation Error
"statusid": Value is not a valid option."
The statusid is an Integer value on the backing bean.
In previous versions (1.1.1) this works fine. Doesn't MyFaces/Tomahawk
in later versions autoconvert strings to integers where appropriate?
My form looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf"
xml:lang="en" lang="en">
<body>
<f:view>
<h:form>
<h:messages globalOnly="false" showDetail="true"
showSummary="true"/>
<h:selectOneMenu id="statusid"
value="#{testBean.statusid}"
styleClass="inputfield_long">
<f:selectItem itemValue="0"
itemLabel="Test1" />
<f:selectItem itemValue="1"
itemLabel="Test2" />
<f:selectItem itemValue="2"
itemLabel="Test3" />
<f:selectItem itemValue="3"
itemLabel="Test4" />
</h:selectOneMenu>
<h:commandButton />
<h:outputText value="#{testBean.statusid}"></h:outputText>
</h:form>
</f:view>
</body>
</html>
Re: Validation error with selectitems in latest Myfaces/Tomahawk
Posted by Safurudin Mahic <sa...@stud.aitel.hist.no>.
the statusid property is an Integer.
What the wiki page suggests, is that the itemValue="#{3}" will return a
valueexpression with
the correct type. My issue seems to be that the valueExpression #{3}
type is actually not Integer, but Long.
Therefore I must use the converter.
I was expecting the #{3} to be of type Integer instead of Long..
With a Long statusid, you don't need to use the explicit converter when
using the #{3}.
What I really want is a way to express an Integer value with a
valueexpression, which in my oppinion
should be #{3}, and the Long value would be #{3L} just like in Java.
-safi
David Delbecq skrev:
> does testBean.getStatusId() return a String or a Long? If you don't
> specify manually a converter, then JSF will try to find a suitable
> converter based on the type of the selectonemenu value (not the select
> item value!).
>
> To check submitted value validity, as far as i know, myfaces will
> compare the selectItem itemValue converte as String with the submitted
> string value. Maybe, without converter, value inside your html form
> looks like <option value="java.lang.Long@abcde">...</option>?
>
> En l'instant précis du 27/06/07 12:14, Safurudin Mahic s'exprimait en
> ces termes:
>
>> Ok - I tried to implement the solution -
>>
>> <h:selectOneMenu id="statusid"
>> value="#{testBean.statusid}">
>> <f:selectItem itemValue="#{0}"
>> itemLabel="Ikke paabegynt" />
>> <f:selectItem itemValue="#{1}"
>> itemLabel="Under arbeid" />
>> <f:selectItem itemValue="#{2}"
>> itemLabel="Kansellert" />
>> <f:selectItem itemValue="#{3}"
>> itemLabel="Utfort" />
>> <f:convertNumber integerOnly="true"/>
>> </h:selectOneMenu>
>>
>> however, I still got the validation error when I didn't use the
>> explicit f:convertNumber.
>> I'm guessing the #{0} etc are integer valueexpressions, hence
>> returning the correct type to the value of
>> the selectonemenu. Wouldn't the expected behavior be that it works
>> without the explicit converter?
>>
>> -safi
>>
>>
>> Cagatay Civici skrev:
>>
>>> Hi,
>>>
>>> Sounds like;
>>>
>>> http://wiki.apache.org/myfaces/Tomahawk_1%2e1%2e4_to_1%2e1%2e5
>>>
>>> Cagatay
>>>
>>> On 6/27/07, *Safurudin Mahic* <safurum@stud.aitel.hist.no
>>> <ma...@stud.aitel.hist.no>> wrote:
>>>
>>> I'm having problems getting a correct form submittal with a simple
>>> selectOneMenu in the latest MyFaces and TomaHawk.
>>>
>>> After issuing the command button, I'm getting "Validation Error
>>> "statusid": Value is not a valid option."
>>> The statusid is an Integer value on the backing bean.
>>> In previous versions (1.1.1) this works fine. Doesn't
>>> MyFaces/Tomahawk
>>> in later versions autoconvert strings to integers where appropriate?
>>>
>>> My form looks like this:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>>> " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>>
>>> <html xmlns="http://www.w3.org/1999/xhtml"
>>> xmlns:ui=" http://java.sun.com/jsf/facelets"
>>> xmlns:h="http://java.sun.com/jsf/html"
>>> xmlns:f="http://java.sun.com/jsf/core
>>> <http://java.sun.com/jsf/core>"
>>> xmlns:t="http://myfaces.apache.org/tomahawk"
>>>
>>> xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf
>>> <http://sourceforge.net/projects/jsf-comp/acegijsf>"
>>> xml:lang="en" lang="en">
>>>
>>> <body>
>>> <f:view>
>>> <h:form>
>>> <h:messages globalOnly="false" showDetail="true"
>>> showSummary="true"/>
>>> <h:selectOneMenu id="statusid"
>>> value="#{testBean.statusid}"
>>>
>>> styleClass="inputfield_long">
>>> <f:selectItem itemValue="0"
>>> itemLabel="Test1" />
>>> <f:selectItem itemValue="1"
>>> itemLabel="Test2" />
>>> <f:selectItem itemValue="2"
>>> itemLabel="Test3" />
>>> <f:selectItem itemValue="3"
>>> itemLabel="Test4" />
>>> </h:selectOneMenu>
>>>
>>>
>>> <h:commandButton />
>>> <h:outputText value="#{ testBean.statusid}"></h:outputText>
>>> </h:form>
>>> </f:view>
>>> </body>
>>> </html>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>
>
Re: Validation error with selectitems in latest Myfaces/Tomahawk
Posted by David Delbecq <de...@oma.be>.
does testBean.getStatusId() return a String or a Long? If you don't
specify manually a converter, then JSF will try to find a suitable
converter based on the type of the selectonemenu value (not the select
item value!).
To check submitted value validity, as far as i know, myfaces will
compare the selectItem itemValue converte as String with the submitted
string value. Maybe, without converter, value inside your html form
looks like <option value="java.lang.Long@abcde">...</option>?
En l'instant précis du 27/06/07 12:14, Safurudin Mahic s'exprimait en
ces termes:
> Ok - I tried to implement the solution -
>
> <h:selectOneMenu id="statusid"
> value="#{testBean.statusid}">
> <f:selectItem itemValue="#{0}"
> itemLabel="Ikke paabegynt" />
> <f:selectItem itemValue="#{1}"
> itemLabel="Under arbeid" />
> <f:selectItem itemValue="#{2}"
> itemLabel="Kansellert" />
> <f:selectItem itemValue="#{3}"
> itemLabel="Utfort" />
> <f:convertNumber integerOnly="true"/>
> </h:selectOneMenu>
>
> however, I still got the validation error when I didn't use the
> explicit f:convertNumber.
> I'm guessing the #{0} etc are integer valueexpressions, hence
> returning the correct type to the value of
> the selectonemenu. Wouldn't the expected behavior be that it works
> without the explicit converter?
>
> -safi
>
>
> Cagatay Civici skrev:
>> Hi,
>>
>> Sounds like;
>>
>> http://wiki.apache.org/myfaces/Tomahawk_1%2e1%2e4_to_1%2e1%2e5
>>
>> Cagatay
>>
>> On 6/27/07, *Safurudin Mahic* <safurum@stud.aitel.hist.no
>> <ma...@stud.aitel.hist.no>> wrote:
>>
>> I'm having problems getting a correct form submittal with a simple
>> selectOneMenu in the latest MyFaces and TomaHawk.
>>
>> After issuing the command button, I'm getting "Validation Error
>> "statusid": Value is not a valid option."
>> The statusid is an Integer value on the backing bean.
>> In previous versions (1.1.1) this works fine. Doesn't
>> MyFaces/Tomahawk
>> in later versions autoconvert strings to integers where appropriate?
>>
>> My form looks like this:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>> " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>
>> <html xmlns="http://www.w3.org/1999/xhtml"
>> xmlns:ui=" http://java.sun.com/jsf/facelets"
>> xmlns:h="http://java.sun.com/jsf/html"
>> xmlns:f="http://java.sun.com/jsf/core
>> <http://java.sun.com/jsf/core>"
>> xmlns:t="http://myfaces.apache.org/tomahawk"
>>
>> xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf
>> <http://sourceforge.net/projects/jsf-comp/acegijsf>"
>> xml:lang="en" lang="en">
>>
>> <body>
>> <f:view>
>> <h:form>
>> <h:messages globalOnly="false" showDetail="true"
>> showSummary="true"/>
>> <h:selectOneMenu id="statusid"
>> value="#{testBean.statusid}"
>>
>> styleClass="inputfield_long">
>> <f:selectItem itemValue="0"
>> itemLabel="Test1" />
>> <f:selectItem itemValue="1"
>> itemLabel="Test2" />
>> <f:selectItem itemValue="2"
>> itemLabel="Test3" />
>> <f:selectItem itemValue="3"
>> itemLabel="Test4" />
>> </h:selectOneMenu>
>>
>>
>> <h:commandButton />
>> <h:outputText value="#{ testBean.statusid}"></h:outputText>
>> </h:form>
>> </f:view>
>> </body>
>> </html>
>>
>>
>>
>>
>>
>>
>>
>>
>>
Re: Validation error with selectitems in latest Myfaces/Tomahawk
Posted by "::SammyRulez::" <sa...@gmail.com>.
the select items were ok. You have to add a "String to Integer
converter" to the selectOneMenu IMHO of course
2007/6/27, Safurudin Mahic <sa...@stud.aitel.hist.no>:
> Ok - I tried to implement the solution -
>
> <h:selectOneMenu id="statusid"
> value="#{testBean.statusid}">
> <f:selectItem itemValue="#{0}"
> itemLabel="Ikke paabegynt" />
> <f:selectItem itemValue="#{1}"
> itemLabel="Under arbeid" />
> <f:selectItem itemValue="#{2}"
> itemLabel="Kansellert" />
> <f:selectItem itemValue="#{3}"
> itemLabel="Utfort" />
> <f:convertNumber integerOnly="true"/>
> </h:selectOneMenu>
>
> however, I still got the validation error when I didn't use the explicit
> f:convertNumber.
> I'm guessing the #{0} etc are integer valueexpressions, hence returning
> the correct type to the value of
> the selectonemenu. Wouldn't the expected behavior be that it works
> without the explicit converter?
>
> -safi
>
>
> Cagatay Civici skrev:
> > Hi,
> >
> > Sounds like;
> >
> > http://wiki.apache.org/myfaces/Tomahawk_1%2e1%2e4_to_1%2e1%2e5
> >
> > Cagatay
> >
> > On 6/27/07, *Safurudin Mahic* <safurum@stud.aitel.hist.no
> > <ma...@stud.aitel.hist.no>> wrote:
> >
> > I'm having problems getting a correct form submittal with a simple
> > selectOneMenu in the latest MyFaces and TomaHawk.
> >
> > After issuing the command button, I'm getting "Validation Error
> > "statusid": Value is not a valid option."
> > The statusid is an Integer value on the backing bean.
> > In previous versions (1.1.1) this works fine. Doesn't MyFaces/Tomahawk
> > in later versions autoconvert strings to integers where appropriate?
> >
> > My form looks like this:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> > " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> >
> > <html xmlns="http://www.w3.org/1999/xhtml"
> > xmlns:ui=" http://java.sun.com/jsf/facelets"
> > xmlns:h="http://java.sun.com/jsf/html"
> > xmlns:f="http://java.sun.com/jsf/core
> > <http://java.sun.com/jsf/core>"
> > xmlns:t="http://myfaces.apache.org/tomahawk"
> > xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf
> > <http://sourceforge.net/projects/jsf-comp/acegijsf>"
> > xml:lang="en" lang="en">
> >
> > <body>
> > <f:view>
> > <h:form>
> > <h:messages globalOnly="false" showDetail="true"
> > showSummary="true"/>
> > <h:selectOneMenu id="statusid"
> > value="#{testBean.statusid}"
> > styleClass="inputfield_long">
> > <f:selectItem itemValue="0"
> > itemLabel="Test1" />
> > <f:selectItem itemValue="1"
> > itemLabel="Test2" />
> > <f:selectItem itemValue="2"
> > itemLabel="Test3" />
> > <f:selectItem itemValue="3"
> > itemLabel="Test4" />
> > </h:selectOneMenu>
> >
> >
> > <h:commandButton />
> > <h:outputText value="#{ testBean.statusid}"></h:outputText>
> > </h:form>
> > </f:view>
> > </body>
> > </html>
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>
--
::SammyRulez::
http://www.kyub.com/blog/
-----------------------------------------------------------------
La programmazione è per un terzo interpretazione e per due terzi ispirazione.
E per un terzo mistificazione
Re: Validation error with selectitems in latest Myfaces/Tomahawk
Posted by Safurudin Mahic <sa...@stud.aitel.hist.no>.
Ok - I tried to implement the solution -
<h:selectOneMenu id="statusid"
value="#{testBean.statusid}">
<f:selectItem itemValue="#{0}"
itemLabel="Ikke paabegynt" />
<f:selectItem itemValue="#{1}"
itemLabel="Under arbeid" />
<f:selectItem itemValue="#{2}"
itemLabel="Kansellert" />
<f:selectItem itemValue="#{3}"
itemLabel="Utfort" />
<f:convertNumber integerOnly="true"/>
</h:selectOneMenu>
however, I still got the validation error when I didn't use the explicit
f:convertNumber.
I'm guessing the #{0} etc are integer valueexpressions, hence returning
the correct type to the value of
the selectonemenu. Wouldn't the expected behavior be that it works
without the explicit converter?
-safi
Cagatay Civici skrev:
> Hi,
>
> Sounds like;
>
> http://wiki.apache.org/myfaces/Tomahawk_1%2e1%2e4_to_1%2e1%2e5
>
> Cagatay
>
> On 6/27/07, *Safurudin Mahic* <safurum@stud.aitel.hist.no
> <ma...@stud.aitel.hist.no>> wrote:
>
> I'm having problems getting a correct form submittal with a simple
> selectOneMenu in the latest MyFaces and TomaHawk.
>
> After issuing the command button, I'm getting "Validation Error
> "statusid": Value is not a valid option."
> The statusid is an Integer value on the backing bean.
> In previous versions (1.1.1) this works fine. Doesn't MyFaces/Tomahawk
> in later versions autoconvert strings to integers where appropriate?
>
> My form looks like this:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:ui=" http://java.sun.com/jsf/facelets"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core
> <http://java.sun.com/jsf/core>"
> xmlns:t="http://myfaces.apache.org/tomahawk"
> xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf
> <http://sourceforge.net/projects/jsf-comp/acegijsf>"
> xml:lang="en" lang="en">
>
> <body>
> <f:view>
> <h:form>
> <h:messages globalOnly="false" showDetail="true"
> showSummary="true"/>
> <h:selectOneMenu id="statusid"
> value="#{testBean.statusid}"
> styleClass="inputfield_long">
> <f:selectItem itemValue="0"
> itemLabel="Test1" />
> <f:selectItem itemValue="1"
> itemLabel="Test2" />
> <f:selectItem itemValue="2"
> itemLabel="Test3" />
> <f:selectItem itemValue="3"
> itemLabel="Test4" />
> </h:selectOneMenu>
>
>
> <h:commandButton />
> <h:outputText value="#{ testBean.statusid}"></h:outputText>
> </h:form>
> </f:view>
> </body>
> </html>
>
>
>
>
>
>
>
>
>
Re: Validation error with selectitems in latest Myfaces/Tomahawk
Posted by Cagatay Civici <ca...@gmail.com>.
Hi,
Sounds like;
http://wiki.apache.org/myfaces/Tomahawk_1%2e1%2e4_to_1%2e1%2e5
Cagatay
On 6/27/07, Safurudin Mahic <sa...@stud.aitel.hist.no> wrote:
>
> I'm having problems getting a correct form submittal with a simple
> selectOneMenu in the latest MyFaces and TomaHawk.
>
> After issuing the command button, I'm getting "Validation Error
> "statusid": Value is not a valid option."
> The statusid is an Integer value on the backing bean.
> In previous versions (1.1.1) this works fine. Doesn't MyFaces/Tomahawk
> in later versions autoconvert strings to integers where appropriate?
>
> My form looks like this:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:t="http://myfaces.apache.org/tomahawk"
> xmlns:acegijsf="http://sourceforge.net/projects/jsf-comp/acegijsf"
> xml:lang="en" lang="en">
>
> <body>
> <f:view>
> <h:form>
> <h:messages globalOnly="false" showDetail="true"
> showSummary="true"/>
> <h:selectOneMenu id="statusid"
> value="#{testBean.statusid}"
> styleClass="inputfield_long">
> <f:selectItem itemValue="0"
> itemLabel="Test1" />
> <f:selectItem itemValue="1"
> itemLabel="Test2" />
> <f:selectItem itemValue="2"
> itemLabel="Test3" />
> <f:selectItem itemValue="3"
> itemLabel="Test4" />
> </h:selectOneMenu>
>
>
> <h:commandButton />
> <h:outputText value="#{testBean.statusid}"></h:outputText>
> </h:form>
> </f:view>
> </body>
> </html>
>
>
>
>
>
>
>
>
>