> I'm wondering what lead you to believe it would be automatically

Because if I define a TextField bound to numeric property without any
validation of my own whatsoever, Tapestry will validate non-numeric
input for me.

Adam

On Thu, Mar 31, 2011 at 1:24 PM, Chris Norris
<thechrisproject.li...@gmail.com> wrote:
> Now I'm all curious. After looking through
> FieldValidatorDefaultSource, FieldValidatorSource and the
> ValidationContstraintGenerator implementations, I'm not sure how a
> numeric field would automatically be validated as such. The Regexp
> validator is only reference in TapestryModule, which allows you to
> explicitly use it, but you're talking about something automatic.
>
> I'm wondering what lead you to believe it would be automatically
> generated in the first place? Though Howard's suggestion that it isn't
> working right seems to imply that it should be doing that...
>
> On Thu, Mar 31, 2011 at 11:04 AM, Adam Zimowski <zimowsk...@gmail.com> wrote:
>> :) I don't think I'm in position to teach Tapestry to others, I'm
>> still learning myself.... But, using Eclipse I looked at class
>> hierarchy for:
>>
>> org.apache.tapestry5.AbstractValidator
>>
>> and see that Tapestry provides only the following out of the box:
>>
>> Email, Max, MaxLength, Min, MinLength, None, Regexp and Required
>>
>> So, just by guessing, I'd venture to say that Tapestry uses Regexp
>> validator to test if numeric field contains indeed a numeric value.
>> I'd also suspect that if there is a bug, it's probably in the regular
>> expression passed to Regexp validator on numeric field test, not the
>> validator itself.
>>
>> Again, I'm still learning myself, so somebody that actually knows for
>> sure would have to confirm, but that's be my guess.
>>
>> Adam
>>
>> On Thu, Mar 31, 2011 at 10:59 AM, Chris Norris
>> <thechrisproject.li...@gmail.com> wrote:
>>> Well perhaps you can teach me a few things. I'm trying to figure out
>>> by what mechanism tapestry would be validating this. We generally
>>> specify our custom NumericValidator on numeric fields. Is there some
>>> sort of automatic validation that can occur? I don't see much mention
>>> of it on this page: http://tapestry.apache.org/input-validation.html
>>>
>>> On Thu, Mar 31, 2011 at 10:54 AM, Adam Zimowski <zimowsk...@gmail.com> 
>>> wrote:
>>>> No problem. Howard mentioned this may be a Tapestry bug. I'm in no
>>>> immediate rush as my project isn't going live until next year, so
>>>> hopefully by then it gets fixed.
>>>>
>>>> Adam
>>>>
>>>> On Thu, Mar 31, 2011 at 10:51 AM, Chris Norris
>>>> <thechrisproject.li...@gmail.com> wrote:
>>>>> Sorry, I was completely wrong. I was looking at a NumericValidator
>>>>> that we wrote, not a Tapestry one.
>>>>>
>>>>> On Thu, Mar 31, 2011 at 9:43 AM, Adam Zimowski <zimowsk...@gmail.com> 
>>>>> wrote:
>>>>>> My client side validation is disabled. This happens on my shopping
>>>>>> cart page where I have multiple forms (inside a loop) with indexed
>>>>>> trackers ( Map<Integer, ValidationTracker>. You can find complete code
>>>>>> for the ShoppingCart page which exhibits this behavior in another
>>>>>> thread which I posted recently:
>>>>>>
>>>>>> "T5: form validation with pre-existing errors"
>>>>>>
>>>>>> The actual numeric field which exhibits this is defined in the template 
>>>>>> as:
>>>>>>
>>>>>> <t:textfield t:id="quantity" t:context="index"
>>>>>> label="prop:quantityLabel" validate="required" size="2"/>
>>>>>>
>>>>>>
>>>>>>       @Component(parameters = {"tracker=tracker"})
>>>>>>       private Form cartForm;
>>>>>>
>>>>>>       @Persist(PersistenceConstants.FLASH)
>>>>>>       private Map<Integer, ValidationTracker> indexedTrackers;
>>>>>>
>>>>>> public ValidationTracker getTracker() {
>>>>>>               if(indexedTrackers == null) return new 
>>>>>> ValidationTrackerImpl();
>>>>>>               return indexedTrackers.get(index);
>>>>>>       }
>>>>>>
>>>>>>       public void setTracker(ValidationTracker aTracker) {
>>>>>>
>>>>>>               if(indexedTrackers == null) {
>>>>>>                       if(log.isTraceEnabled()) log.trace("crating
>>>>>> indexed trackers map");
>>>>>>                       indexedTrackers = new HashMap<Integer,
>>>>>> ValidationTracker>();
>>>>>>               }
>>>>>>
>>>>>>               if(log.isTraceEnabled()) {
>>>>>>                       log.trace("setting tracker for index: " + index);
>>>>>>               }
>>>>>>
>>>>>>               indexedTrackers.put(index, aTracker);
>>>>>>       }
>>>>>>
>>>>>> In addition, this field carries a mixin:
>>>>>>
>>>>>> @Component(id=ID_QUANTITY_FIELD, parameters 
>>>>>> ={"AttachError.message=fieldError"})
>>>>>> @MixinClasses(value=AttachError.class)
>>>>>> private TextField quantityField;
>>>>>>
>>>>>> @MixinAfter
>>>>>> public class AttachError {
>>>>>>
>>>>>>        @Parameter(required = true, allowNull = true)
>>>>>>        private String message;
>>>>>>
>>>>>>        @Environmental
>>>>>>        private ValidationTracker tracker;
>>>>>>
>>>>>>        @InjectContainer
>>>>>>        private Field field;
>>>>>>
>>>>>>
>>>>>>        void setupRender() {
>>>>>>                if (message != null) {
>>>>>>                        tracker.recordError(field, message);
>>>>>>                }
>>>>>>        }
>>>>>> }
>>>>>>
>>>>>>  public String getFieldError() {
>>>>>>               String error = null;
>>>>>>               ValidationTracker tracker = getTracker();
>>>>>>               if(tracker != null && tracker.getError(quantityField) != 
>>>>>> null) {
>>>>>>                       return null;
>>>>>>               }
>>>>>>               CartItemBean cib = 
>>>>>> findCartItem(cartDisplayItem.getLineNumber());
>>>>>>
>>>>>>    // look up error in CartItemBean and if found return it, or return 
>>>>>> null;
>>>>>>
>>>>>>   return error;
>>>>>> }
>>>>>>
>>>>>> Let me know, perhaps I am doing something wrong..
>>>>>>
>>>>>> Adam
>>>>>>
>>>>>> On Thu, Mar 31, 2011 at 9:03 AM, Chris Norris
>>>>>> <thechrisproject.li...@gmail.com> wrote:
>>>>>>> The Tapestry NumericValidator seems to rely on whether
>>>>>>> Double.valueOf(String) will throw an exception, which it does for
>>>>>>> '1k'.
>>>>>>>
>>>>>>> How are you configuring and using your validator?
>>>>>>>
>>>>>>> On Tue, Mar 29, 2011 at 5:19 PM, Adam Zimowski <zimowsk...@gmail.com> 
>>>>>>> wrote:
>>>>>>>> It is server side. Looks like if input starts with a digit, Tapestry 
>>>>>>>> is happy :)
>>>>>>>>
>>>>>>>> Adam
>>>>>>>>
>>>>>>>> On Tue, Mar 29, 2011 at 5:05 PM, Howard Lewis Ship <hls...@gmail.com> 
>>>>>>>> wrote:
>>>>>>>>> Seems like a bug to me!  Surprising, though. Is this server-side or
>>>>>>>>> client-side validation?
>>>>>>>>>
>>>>>>>>> On Tue, Mar 29, 2011 at 2:49 PM, Adam Zimowski <zimowsk...@gmail.com> 
>>>>>>>>> wrote:
>>>>>>>>>> For numeric fields, Tapestry validates correctly non-numeric input.
>>>>>>>>>> However, input such as:
>>>>>>>>>>
>>>>>>>>>> 1k
>>>>>>>>>> 1\
>>>>>>>>>> etc..
>>>>>>>>>>
>>>>>>>>>> passes the validation.
>>>>>>>>>>
>>>>>>>>>> Am I missing something?
>>>>>>>>>>
>>>>>>>>>> Adam
>>>>>>>>>>
>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>>>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Howard M. Lewis Ship
>>>>>>>>>
>>>>>>>>> Creator of Apache Tapestry
>>>>>>>>>
>>>>>>>>> The source for Tapestry training, mentoring and support. Contact me to
>>>>>>>>> learn how I can get you up and productive in Tapestry fast!
>>>>>>>>>
>>>>>>>>> (971) 678-5210
>>>>>>>>> http://howardlewisship.com
>>>>>>>>>
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to