commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Niall Pemberton" <niall.pember...@gmail.com>
Subject Re: [validator] intRange(between 0-100) validation fails for 1234 value because of a locale issue
Date Thu, 01 Mar 2007 12:44:20 GMT
On 3/1/07, Craig McClanahan <craigmcc@apache.org> wrote:
> On 2/28/07, Niall Pemberton <niall.pemberton@gmail.com> wrote:
> > This question relates to Shale's validation rather than commons
> > validator - you're more likely to get an answer asking this on their
> > user list.
> >
>
> Actually, Niall, there are C-V related issues here.  Even in the US
> locale, the Commons Validator default formatting methods will convert
> an integer 1234 into string "1,234", but the C-V validator routine
> will not accept that as a valid integer string on a subsequent form
> post -- it only wants "1234".  I haven't had time to nail down the
> precise boundaries of the problem, but there is definitely a C-V
> related problem here.  It should generate string values that are
> accepted by a subsequent validation (especially in the case where the
> user did not actually change the value).

Hi Craig,

Thanks for responding to this - I just posted an answer to Hasan's
post - if you're right and there are things that need addressing in
Commons Validator to make this a good experience for Shale users then
I'd be happy to do so (time permitting) - or if you want to dive in
then feel free (you're still on the list of Validator developers!).

Niall

> > Niall
> >
>
> Craig
>
> > On 2/28/07, Hasan Turksoy <hturksoy@gmail.com> wrote:
> > > hi all,
> > >
> > > i am using an intRange validator together with an integer converter for my
> > > input field.. code is like below;
> > > <h:inputtext value="..myIntField" ...>
> > >  <f:converter converterId="org.apache.shale.converter.Integer" />
> > >  <s:commonsvalidator type="intRange" min="5" max="100" ... />
> > >  <h:inputtext />
> > >
> > > this means; my field will be validated for the 5<->100 range with an
integer
> > > value which will be converted by the shale's "
> > > org.apache.shale.validator.converter.IntegerConverter" class...
> > >
> > > issue:
> > > if i enter values less than 1000; validator(GenericValidator class) is
> > > working as expected... But, if i enter values more than 1000, then, it gives
> > > a validation error saying my field's value(1234) must be integer!
> > > This is because when i entered a value like 1234, converter converts my
> > > value to string (validator-rules need string value to make integer
> > > validation) as "123.4".. so, it puts a thousand separator while converting
> > > my value to string... in this case, GenericTypeValidator's "formatInt"
> > > method fails while creating a new Integer from this string... It's trying to
> > > do like;
> > > "return new Integer("123.4");"...
> > >
> > > suggestion:
> > > why this "formatInt(String value)" method of GenericTypeValidator is NOT
> > > using overridden "formatInt(String value, Locale locale);" method with null
> > > locale parameter?.. However, if it did like that; it will use the default
> > > locale while parsing my string to integer... and it will work as expected...
> > >
> > > best regards,
> > >
> > > hasan...
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: commons-user-help@jakarta.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message