hi nick,

if you debug your (our) alternative form component you 
will see that the ValidationTracker mytracker is NOT null 
if you just refresh the page (breakpoint at getDefaultTracker).
and contains the old values. 

i suppose "flash" does not cleanup the objects correctly 
and leaves them in the session. or maybe there is some 
sideeffect with components and parameters... need more test


public class Form extends org.apache.tapestry.corelib.components.Form {
    @Persist("flash")
    private ValidationTracker mytracker;
 
    @Override
    public ValidationTracker getDefaultTracker() {
        if(mytracker == null)
            mytracker = new ValidationTrackerImpl();
        return mytracker;
    }

g,
kris



Kristian Marinkovic <[EMAIL PROTECTED]> 
16.10.2007 15:05
Bitte antworten an
"Tapestry users" <users@tapestry.apache.org>


An
"Tapestry users" <users@tapestry.apache.org>
Kopie

Thema
Re: T5: refreshing page when there is an error






i experience the same form behaviour. when i do a
ctrl+r on the page wih the error message displayed
it wont disappear although the onValidate method is 
not called and the ValidationTracker has "flash" scope...

i must admit i dont understand why this happens, i've to
dig deeper..... maybe some more coffee!?

... but the message will disappear if you clean it on 
cleanupRender

void cleanupRender() {
    form.clearErrors();
}

g,
kris






Kristian Marinkovic <[EMAIL PROTECTED]> 
16.10.2007 13:53
Bitte antworten an
"Tapestry users" <users@tapestry.apache.org>


An
"Tapestry users" <users@tapestry.apache.org>
Kopie

Thema
Re: T5: refreshing page when there is an error






i'm using 5.0.6-SNAPSHOT and exprience some strange behaviour
on properties with @Persist("flash"). if i hit ctrl+r (page reload) the 
properties are not set back properly and therefore their value remains.

... but i have to check whether this is an error on my side

i'll report back when i finished my sample form and did some testing

g,
kris




Nick Westgate <[EMAIL PROTECTED]> 
16.10.2007 13:37
Bitte antworten an
"Tapestry users" <users@tapestry.apache.org>


An
Tapestry users <users@tapestry.apache.org>
Kopie

Thema
Re: T5: refreshing page when there is an error






Hmm, I'm seeing the same thing, although I only have an old T5.0.5 project
to play with at the moment. This will take some looking into.

Kris are you getting this behaviour?

Cheers,
Nick.


Angelo Chen wrote:
> Hi Nick,
> 
> refreshing without a submit was my original question, but after applying
> clearErrors(), I meant form fields got cleared while the error was 
displayed
> under onValidate(), anyway I have tried your approach (b), here is the
> result:
> 
> When I did :
>  public void onValidate() throws EncoderException {
>       _form.recordError("Email address invalid");
> 1.
>    It displays error, and if I quit the browser and re-open the page, 
error
> is gone, good. when I switch to other page then come back to the 
original
> page, error is gone, good. when I click 'refresh', error remains, why?
> 
> 2. I let "t:validate="required,minlength=8" emits some errors into the 
same
> form, then click 'refresh', those new errors got erased, but the error 
in #1
> remains, anyway to clear them totally?
> 
> 
> 
> 
> 
> Nick Westgate wrote:
>> You mean refreshing without a submit, right? So onValidate isn't
>> called in that case - only when the form submits. You can clear
>> the form errors in an event handler, but realistically this can
>> become problematic ...
>>
>> It's likely that the behaviour you want can be provided by:
>>
>> (a) copying and changing Form - see (b)
>>
>> or
>>
>> (b) deriving from Form and flash persisting the ValidationTracker:
>>
>> package yourapp.tapestry.components;
>>
>> import org.apache.tapestry.ValidationTracker;
>> import org.apache.tapestry.ValidationTrackerImpl;
>> import org.apache.tapestry.annotations.Persist;
>>
>> public class Form extends org.apache.tapestry.corelib.components.Form
>> {
>>      @Persist("flash")
>>      private ValidationTracker defaultTracker;
>>
>>      @Override
>>      public ValidationTracker getDefaultTracker()
>>      {
>>          if (defaultTracker == null)
>>              defaultTracker = new ValidationTrackerImpl();
>>
>>          return defaultTracker;
>>      }
>>
>>      @Override
>>      public void setDefaultTracker(ValidationTracker defaultTracker)
>>      {
>>          this.defaultTracker = defaultTracker;
>>      }
>> }
>>
>> Cheers,
>> Nick.
>>
>>
>> Angelo Chen wrote:
>>> Hi Howard,
>>>
>>> What is the right spot to use clearErrors()? I have code as follow:
>>>  public void onValidate() throws EncoderException {
>>>         _form.clearErrors(); 
>>>         // more validates...
>>> }
>>>
>>> if there is a previous error, it will be cleared, but if there is a 
new
>>> error, all the fields are cleared as well, any hints?
>>>
>>>
>>> Howard Lewis Ship wrote:
>>>> Form has a clearErrors() method.
>>>>
>>>> On 10/15/07, Angelo Chen <[EMAIL PROTECTED]> wrote:
>>>>> Hi,
>>>>>
>>>>> I notice that when an error is recorded thru recordError, refreshing
>>>>> the
>>>>> form will not erase the error messages unlike when form was rejected 


by
>>>>> validator where pressing refresh in the browser can errase the 
errors
>>>>> and
>>>>> go
>>>>> back to the initial form screen, here is the code
>>>>> public void onValidate() throws EncoderException {
>>>>> _form.recordError("test error");
>>>>> }
>>>>>
>>>>> if this error is shown in the form, it will be there forever even 
you
>>>>> restart the browser, any hint?
>>>>> A.C.
>>>>> --
>>>>> View this message in context:
>>>>> 
http://www.nabble.com/T5%3A-refreshing-page-when-there-is-an-error-tf4627982.html#a13214217



>>>>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>> 
---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>
>>>>>
>>>> -- 
>>>> Howard M. Lewis Ship
>>>> Partner and Senior Architect at Feature50
>>>>
>>>> Creator Apache Tapestry and Apache HiveMind
>>>>
>>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




Reply via email to