Matthias,
I haven't seen this behavior, even with custom validators.
You're somehow preserving the messages between page requests, but
that's not normally the case, even when using immediate.
I don't think the behavior is caused by validators -- they're just
demonstrating the issue by generating messages.
It's hard to comment any further. I recommend trying to create as
simple of an example that causes this problem as possible. In the
process you'll probably discover what filter, servlet, phase listener,
backing bean, or whatever, is causing the problem.
On 1/5/06, Matthias Kahlau <[EMAIL PROTECTED]> wrote:
> Thanks Mike,
>
>
> but the custom validator is the source of the problem (it's implemented by
> following an example of the JSF book of Hans Bergsten). I implemented it
> before I've heared about the sandbox component, and it works, so I'll keep
> hold of it at the moment.
>
> I just tried the scenario with a built-in validator (f:validateLongRange),
> and it showed the same misbehaviour:
>
> <t:inputText id="ergPubBeginnAnzahl"
> binding="#{UmfrVorlFormBacking.inputTextErgPubBegAnzahl}"
> value="#{UmfrVorlFormBacking.dfVorlageBasis.ergPubAnzahl}"
> disabled="false"
> required="false"
> readonly="#{UmfrVorlFormBacking.vorlageAndererAutor}"
> maxlength="4"
> size="4"
> title="Textfeld zur Eingabe der Ergebnisanzahl"
> immediate="false">
> <f:validateLongRange minimum="1" maximum="9999" />
> </t:inputText>
>
>
> When I try to save the form the first time with only one validation error
> caused by entering "0" in that inputText, one error message summary is shown
> in the following h:messages tag at the top of the page:
>
> <h:messages layout="table" globalOnly="false" showSummary="true"
> showDetail="false" errorClass="error" fatalClass="error" />
>
>
> When I leave the page to a subform with an immediate action (not the
> immediate save action), and then return to the first page and try to save
> it, two error message summaries are printed in the h:messages for the one
> validation error.
>
> If I leave the page again to the subform and then return and press save,
> three error message summaries are printed in the h:messages for the one
> validation error, and so on. There's always one error message added to the
> list of error messages...
>
>
> Is this behaviour intended? How can I prevent this?
>
> I can extend that question and ask, how can I prevent duplicates of error
> message summaries to be printed out by the h:messages component, because
> other use cases are possible where some additional validation errors occur
> on the same page, and all have the same error message summary. I think one
> error message summary of one type would be sufficient... And that's a
> problem you all might face sometime...
>
> (I already thought of a phase listener the removes duplicates from the error
> message queue ;) ...)
>
>
> Regards,
>
> Matthias
>
> > -----Ursprüngliche Nachricht-----
> > Von: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] Auftrag
> > von Mike Kienenberger
> > Gesendet: Donnerstag, 5. Januar 2006 20:43
> > An: MyFaces Discussion
> > Betreff: Re: Custom validator invoked multiple times in process
> > validations phase
> >
> >
> > Hi Matthias,
> >
> > I don't know the answer to your problem, but there's a
> > sandbox:validateCompareTo that you can use instead of creating your
> > own custom validator. I already use it to compare two dates:
> >
> > <sandbox:validateCompareTo operator="ge" for="openDateInput"
> > message="Date initiated must be before requested completion date."/>
> >
> >
> > On 1/5/06, Matthias Kahlau <[EMAIL PROTECTED]> wrote:
> > > Hi!
> > >
> > >
> > > I have a problem with a validator, this time with a custom
> > validator used as
> > > custom JSP action inside a JSF page. The validator is a "laterThan"
> > > validator, which compares two dates when I try to save the form.
> > >
> > > I use the following tag only one time in the JSP page, but the
> > validator is
> > > invoked 5 times when a validation error occurs:
> > >
> > > <custom:validateLater than="umfragebeginn" />
> > >
> > >
> > > You can see the multiple invocations in the logging output from
> > the process
> > > validations phase (entering validate()...leaving validate()):
> > >
> > >
> > > 2006-01-05 18:49:05,031 DEBUG
> > [org.apache.myfaces.lifecycle.LifecycleImpl]
> > > entering processValidations in
> > org.apache.myfaces.lifecycle.LifecycleImpl
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isLehrevalChosen()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isLehrevalChosen()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isMitarbeiterBefrChosen()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isMitarbeiterBefrChosen()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isLehrevalChosen()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isMitarbeiterBefrChosen()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isLehrevalChosen()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isLehrevalChosen()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering validate()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering formatDate()
> > > 2006-01-05 18:49:05,031 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] date = Thu Jan 05 01:00:00 CET 2006
> > > 2006-01-05 18:49:05,031 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] formatted date (converter) = 05.01.06
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving formatDate()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,031 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > > Parameter: params=[Ljava.lang.Object;@129714a,
> > > key=validator.laterThan.notLater
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,031 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] key =
> > > validator.laterThan.notLater
> > > 2006-01-05 18:49:05,031 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum
> > {0} folgt.
> > > 2006-01-05 18:49:05,031 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum 05.01.06
> > > folgt.
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] error msg = [EMAIL PROTECTED]
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving validate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering validate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering formatDate()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] date = Thu Jan 05 01:00:00 CET 2006
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] formatted date (converter) = 05.01.06
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving formatDate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > > Parameter: params=[Ljava.lang.Object;@16d64b9,
> > > key=validator.laterThan.notLater
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] key =
> > > validator.laterThan.notLater
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum
> > {0} folgt.
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum 05.01.06
> > > folgt.
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] error msg = [EMAIL PROTECTED]
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving validate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering validate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering formatDate()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] date = Thu Jan 05 01:00:00 CET 2006
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] formatted date (converter) = 05.01.06
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving formatDate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > > Parameter: params=[Ljava.lang.Object;@1e72538,
> > > key=validator.laterThan.notLater
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] key =
> > > validator.laterThan.notLater
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum
> > {0} folgt.
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum 05.01.06
> > > folgt.
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] error msg = [EMAIL PROTECTED]
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving validate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering validate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering formatDate()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] date = Thu Jan 05 01:00:00 CET 2006
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] formatted date (converter) = 05.01.06
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving formatDate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > > Parameter: params=[Ljava.lang.Object;@10a9d01,
> > > key=validator.laterThan.notLater
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] key =
> > > validator.laterThan.notLater
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum
> > {0} folgt.
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum 05.01.06
> > > folgt.
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] error msg = [EMAIL PROTECTED]
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving validate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering validate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] entering formatDate()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] date = Thu Jan 05 01:00:00 CET 2006
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] formatted date (converter) = 05.01.06
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving formatDate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > > Parameter: params=[Ljava.lang.Object;@52578c,
> > > key=validator.laterThan.notLater
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil]
> > entering
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] key =
> > > validator.laterThan.notLater
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum
> > {0} folgt.
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getMessageFromBundle()
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] msg =
> > > Bitte ein Umfrageendedatum eingeben, das dem Umfragebeginndatum 05.01.06
> > > folgt.
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedMessageFromBundle()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.FacesMessageUtil] leaving
> > > getParameterisedErrorMessage()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] error msg = [EMAIL PROTECTED]
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterTh
> > anValidato
> > > r] leaving validate()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isSonstUmfragenChosen()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.UmfrVor
> > lFormValid
> > > atorBacking] entering validateErgPubEnde()
> > > 2006-01-05 18:49:05,046 DEBUG
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.UmfrVor
> > lFormValid
> > > atorBacking] AuswSicherheit: Umfragemanager only - no
> > validation necessary
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.utils.validator.UmfrVor
> > lFormValid
> > > atorBacking] leaving validateErgPubEnde()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isSonstUmfragenChosen()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isCreating()
> > > 2006-01-05 18:49:05,046 INFO
> > >
> > [de.fhzw.portal.umfragesystem.view.backing.management.UmfrVorlFormBacking]
> > > entering/leaving isLehrevalChosen()
> > > 2006-01-05 18:49:05,046 DEBUG
> > [org.apache.myfaces.lifecycle.LifecycleImpl]
> > > exiting from lifecycle.execute in processValidations because
> > > getRenderResponse is true from one of the after listeners
> > > 2006-01-05 18:49:05,046 DEBUG
> > [org.apache.myfaces.lifecycle.LifecycleImpl]
> > > entering renderResponse in org.apache.myfaces.lifecycle.LifecycleImpl
> > > 2006-01-05 18:49:05,046 DEBUG
> > > [org.apache.myfaces.application.jsp.JspViewHandlerImpl] Dispatching to
> > > /Management/UmfrVorlForm.jsp
> > >
> > >
> > > The Problem is furthermore, that the h:messages, which outputs the error
> > > summary of this page, does also print out the summary 5 times,
> > so that the
> > > user is directly confronted with this misbehaviour.
> > >
> > > As I could observe, the multiple invocations or at least the
> > multiple error
> > > message print-outs must have sth. to do with the amount of visits of the
> > > page. Each time a leave the page to a subform (immediate
> > action), and than
> > > return to the page and try to save the form, the error message
> > is printed
> > > out one more time.
> > >
> > > What I also could see from the logging output of the rendered
> > view, that one
> > > validator tag (which is used only one time per component) is
> > printed many
> > > times, regardless of the validator type (built-in or custom), e. g.:
> > >
> > > Custom validator:
> > >
> > > <org.apache.myfaces.custom.calendar.HtmlInputCalendar id="umfrageende"
> > > forceIdIndex="true" accesskey="NULL" addResources="true" alt="NULL"
> > > converter="[EMAIL PROTECTED]"
> > > currentDayCellClass="currentDayCell" dayCellClass="NULL" dir="NULL"
> > > disabled="#{UmfrVorlFormBacking.vorlageAndererAutor}"
> > > enabledOnUserRole="NULL" family="javax.faces.Input" immediate="false"
> > > lang="NULL" localValue="NULL" localValueSet="false"
> > maxlength="-2147483648"
> > > monthYearRowClass="yearMonthHeader" onblur="NULL" onchange="NULL"
> > > onclick="NULL" ondblclick="NULL" onfocus="NULL" onkeydown="NULL"
> > > onkeypress="NULL" onkeyup="NULL" onmousedown="NULL" onmousemove="NULL"
> > > onmouseout="NULL" onmouseover="NULL" onmouseup="NULL" onselect="NULL"
> > > popupButtonString="NULL" popupDateFormat="NULL" popupGotoString="NULL"
> > > popupScrollLeftMessage="NULL" popupScrollRightMessage="NULL"
> > > popupSelectDateMessage="NULL" popupSelectMonthMessage="NULL"
> > > popupSelectYearMessage="NULL" popupTodayString="Heute ist"
> > > popupWeekString="Wo"
> > readonly="#{UmfrVorlFormBacking.vorlageAndererAutor}"
> > > renderAsPopup="true" renderPopupButtonAsImage="true" rendered="true"
> > > rendererType="org.apache.myfaces.Calendar" rendersChildren="false"
> > > required="true" size="-2147483648" style="NULL" styleClass="NULL"
> > > submittedValue="05.01.06" tabindex="NULL" title="NULL" transient="false"
> > > valid="false" validator="NULL"
> > > value="#{UmfrVorlFormBacking.dfVorlageBasis.umfrEnde}"
> > > valueChangeListener="NULL" visibleOnUserRole="NULL"
> > > weekRowClass="weekHeader">
> > >
> > <de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterThan
> > > Validator/>
> > >
> > <de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterThan
> > > Validator/>
> > >
> > <de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterThan
> > > Validator/>
> > >
> > <de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterThan
> > > Validator/>
> > >
> > <de.fhzw.portal.umfragesystem.view.backing.utils.validator.LaterThan
> > > Validator/>
> > > </org.apache.myfaces.custom.calendar.HtmlInputCalendar>
> > >
> > >
> > > Or built-in validator:
> > >
> > > <html.ext.HtmlInputText id="kennwort" forceIdIndex="true"
> > accesskey="NULL"
> > > alt="NULL" converter="NULL" dir="NULL" disabled="false"
> > > displayValueOnly="false" displayValueOnlyStyle="NULL"
> > > displayValueOnlyStyleClass="NULL" enabledOnUserRole="NULL"
> > > family="javax.faces.Input" immediate="false" lang="NULL" localValue=""
> > > localValueSet="true" maxlength="256" onblur="NULL" onchange="NULL"
> > > onclick="NULL" ondblclick="NULL" onfocus="NULL" onkeydown="NULL"
> > > onkeypress="NULL" onkeyup="NULL" onmousedown="NULL" onmousemove="NULL"
> > > onmouseout="NULL" onmouseover="NULL" onmouseup="NULL" onselect="NULL"
> > > readonly="#{UmfrVorlFormBacking.vorlageAndererAutor}" rendered="true"
> > > rendererType="org.apache.myfaces.Text" rendersChildren="false"
> > > required="false" setDisplayValueOnly="false" size="50" style="NULL"
> > > styleClass="NULL" submittedValue="NULL" tabindex="NULL"
> > title="Textfeld zur
> > > Eingabe des Kennworts" transient="false" valid="true" validator="NULL"
> > > value="#{UmfrVorlFormBacking.dfVorlageBasis.kennwort}"
> > > valueChangeListener="NULL" visibleOnUserRole="NULL">
> > > <javax.faces.validator.LengthValidator/>
> > > <javax.faces.validator.LengthValidator/>
> > > <javax.faces.validator.LengthValidator/>
> > > <javax.faces.validator.LengthValidator/>
> > > <javax.faces.validator.LengthValidator/>
> > > </html.ext.HtmlInputText>
> > >
> > >
> > > How can I manage this? (The problem reminds me of my post send
> > on Tuesday,
> > > which might also be caused by multiple invocations of a
> > validator, but that
> > > validator was a built-in one: Please see
> > > http://www.mail-archive.com/[email protected]/msg14355.html)
> > >
> > >
> > >
> > > Regards,
> > >
> > > Matthias
> > >
> > >
>
>