0 Replies Latest reply on Nov 6, 2012 4:02 AM by peterfry

    Seam 2.3 / JSF 2.2 empty strings and f:validator

    peterfry

      I am in the process of migrating from Seam 2.2.2 to Seam 2.3 and am seeing a pretty significant change in behaviour.

       

      The page layout is:

       

      <h:form>

        <s:validateAll>

          <h:outputLabel id="niNumber-label" styleClass="form-label" for="niNumber" value="#{messages['prompt.niNumber']}" />

          <h:inputText id="niNumber" styleClass="opt-input" maxlength="9" value="#{memberSearchAction.niNumber}" label="#{messages['prompt.niNumber']}" >

            <f:validator validatorId="NiNumberValidator" />

          </h:inputText>

          <h:outputLabel id="surname-label" styleClass="form-label" for="surname" value="#{messages['prompt.surname']}" />

          <h:inputText id="surname" styleClass="opt-input" maxlength="25" value="#{memberSearchAction.surname}" label="#{messages['prompt.surname']}" />

        </s:validateAll>

      </h:form>

       

      Previously, submitting the form with an empty value for the niNumber didn't result in the validator firing.

       

      In Seam 2.3/JSF 2.2 it does fire and because the validator requires a non-null value it displays an error.

       

      The presence or absence of s:validateAll makes no difference.

       

      Is this a known change moving from Seam 2.2 to Seam 2.3? Or is it just a JSF 1.2 to JSF 2.2 thing?

       

      Obviously a single case is easily fixed but I'm migrating a whole application and would like a clear understanding of what has changed?

       

      Peter.