That is exactly what happens. The JSF code does a null check and a .trim().size() check on the string that is submitted(everything is still a string at this point) to determine if it should run the validations.
JB -----Original Message----- From: Jason Vincent [mailto:[EMAIL PROTECTED] Sent: Thursday, March 29, 2007 2:14 PM To: [email protected] Subject: Re: JSF Validator on select menus only getting used once. just had an after thought... when I don't change the first select it is still running the validator on that first select menu. There is a difference between the two selects... the first is keyed by integers and the default value is -1 with a blank label. The second is keyed by strings and the default value is "" with a blank label. I wonder if JSF is considering the -1 as a value that needs to be validated and a "" as something it doesn't. Putting required= true did seem to solve my needs for the string based select. Too bad it can't be consistent. THANKS for the help. Jason On 3/29/07, Jason Vincent <[EMAIL PROTECTED]> wrote: > ohh dang. > > Well that is precisely what I need to validate - that the default > "blank" value isn't the one that got submitted. hmmmmmm > > Suggestions? > I suppose if it came to it, I could use an alternate form of > validation - javascript, or perhaps application layer validation. My > preference, for simplicity, is to use JSF's validation layer. > > Thanks, > Jason > > On 3/29/07, Baker,Jonathan <[EMAIL PROTECTED]> wrote: > > Is it possible that the validation only runs if the value of the > > pulldown has changed? I think I remember that happening to me. I > > believe that the required check runs no matter what, but the > > validations only run if values change. > > > > > > JB > > > > -----Original Message----- > > From: Mike Kienenberger [mailto:[EMAIL PROTECTED] > > Sent: Thursday, March 29, 2007 1:54 PM > > To: [email protected] > > Subject: Re: JSF Validator on select menus only getting used once. > > > > That's pretty weird. It looks ok as far as I can tell. > > I would also think that each component would have its own instance > > of the validator. > > > > Maybe there's something strange in your validator code? Are you > > maintaining any kind of static state? > > > > > > On 3/29/07, Jason Vincent <[EMAIL PROTECTED]> wrote: > > > Hi all, > > > > > > I have two pulldown select menus that are using the same validator. > > > when submitting the page, it appears that only the first select is > > > getting validated and the second isn't validated at all. This was > > > confirmed by placing a breakpoint on the "validate" method of my > > > custom validator, called "selectOneMenuValueValidator". > > > > > > The validator is checking that the selected value isn't the first > > > item > > > > > in the list. > > > > > > Is there something I need to reset once the validation passes on > > > the > > first menu? > > > > > > Thanks, > > > Jason > > > > > > > > > > > > <h:panelGrid columns="2" > > > columnClasses="columnRight optionLabel, columnLeft"> > > > <h:outputText > > value="#{messages['merchantStatus.status']}"/> > > > <h:panelGroup> > > > <h:selectOneMenu id="status" > > > value="#{batchPartnerSetup$merchantStatus.selectedStatusId}"> > > > <f:selectItems > > > value="#{batchPartnerSetup$merchantStatus.statusPulldown}"/> > > > <f:validator > > > validatorId="selectOneMenuValueValidator"/> > > > </h:selectOneMenu> > > > <h:message for="status" > > > errorClass="validationError" fatalClass="validationError" > > > warnClass="validationError" > > > infoClass="validationError"/> > > > </h:panelGroup> > > > <h:outputText > > > value="#{messages['merchantStatus.statusComment']}"/> > > > <h:panelGroup> > > > <h:selectOneMenu id="comment" > > > value="#{batchPartnerSetup$merchantStatus.selectedStatusComment}"> > > > <f:selectItems > > > value="#{batchPartnerSetup$merchantStatus.statusCommentPulldown}"/> > > > <f:validator > > > validatorId="selectOneMenuValueValidator"/> > > > </h:selectOneMenu> > > > <h:message for="comment" > > > errorClass="validationError" fatalClass="validationError" > > > warnClass="validationError" > > > infoClass="validationError"/> > > > </h:panelGroup> > > > </h:panelGrid> > > > > > >
