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" <[email protected]>
An
"Tapestry users" <[email protected]>
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" <[email protected]>
An
Tapestry users <[email protected]>
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]