Hi Matt,

I read that post and it was helpful but I still don't think I understand
what is meant by

"use a String property, and then do some custom formatting (after
validation) to make it into a date".

If I understand correctly when you said that it doesn't make sense to

"to validate a java.util.Date (since it's already a java.util.Date)"

I am a bit confused because I thought the validator was being used to ensure
the text input from the form was in the correct format before being
processed by server side logic.


I also am trying to add validation logic to verify that the start date is
before the end date.  It is breaking with a similar error:

[keymanager] DEBUG [main] KeyMetadataFormController.showNewForm(322) |
Displaying new form
[keymanager] DEBUG [main] KeyMetadataFormControllerTest.testSave(51) |
2005-01-0
1 00:00:00.0
[keymanager] DEBUG [main] KeyMetadataFormControllerTest.testSave(52) |
2007-01-0
1 00:00:00.0
[keymanager] DEBUG [main] KeyMetadataFormController.processFormSubmission(256)
|
 Data binding errors: 1
[keymanager] DEBUG [main] KeyMetadataFormControllerTest.testSave(58) |
org.sprin
gframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'keyMetadata' on field 'endDate': rejected value [Mon
Jan
01 00:00:00 PST 2007]; codes [endDate.keyMetadata.endDate,endDate.endDate
,endDat
e.java.util.Date,endDate]; arguments []; default message [The End Date has
to be
 after the Start Date]
[keymanager] INFO [main] KeyMetadataFormControllerTest.endTransaction(290) |
Rol
led back transaction after test execution


I took out the "date" in depends just to see if I could get farther:

//validation.xml
<field property="startDate" depends="required">
              <arg0 key="keyMetadata.startDate"/>
              <var>
                  <var-name>datePattern</var-name>
                  <var-value>MM/dd/yyyy</var-value>
              </var>
          </field>
          <field property="endDate" depends="required">
              <arg0 key="keyMetadata.endDate"/>
              <var>
                  <var-name>datePattern</var-name>
                  <var-value>MM/dd/yyyy</var-value>
              </var>
          </field>

//dispatcher-servlet.xml
<bean id="keyMetadataFormController" class="
com.intuit.security.keymanager.webapp.controller.KeyMetadataFormController">
        <property name="validators">
                <list>
                    <ref bean="beanValidator"/>      <!--Commons Server-side
validation -->
                    <ref bean="endDateValidator"/>       <!--Spring
validation -->
                </list>
        </property>
        <property name="successView" value="redirect:keymetadatas.html"/>
        <property name="keyMetadataManager" ref="keyMetadataManager"/>
        <property name="typeCodeManager" ref="typeCodeManager"/>
    </bean>


//applicationContext-validation.xml
<bean id="endDateValidator" class="
org.springmodules.validation.valang.ValangValidator">
        <property name="valang">
            <value>
            <![CDATA[
                { endDate : endDate < startDate : 'The End Date has to be
after the Start Date'}
            ]]>
            </value>
        </property>
        <property name="dateParserRegistrations">
            <map>
                <entry key="^d{2}/d{2}/d{4}$" value="MM/dd/yyyy"/>
            </map>
        </property>
    </bean>


Regards,
Abe



On 8/8/07, Matt Raible <[EMAIL PROTECTED]> wrote:
>
> This should help:
>
>
> http://www.jroller.com/raible/entry/validating_dates_with_commons_validator
>
> Matt
>
> On 8/8/07, Developer Abe <[EMAIL PROTECTED]> wrote:
> > Getting the following:
> >
> > [keymanager] DEBUG [main]
> > KeyMetadataFormController.showNewForm(322) | Displayin
> > g new form
> > [keymanager] DEBUG [main]
> > KeyMetadataFormControllerTest.testSave(51) | 2005-01-0
> > 1 00:00:00.0
> > [keymanager] DEBUG [main]
> > KeyMetadataFormControllerTest.testSave(52) | 2007-01-0
> > 1 00:00:00.0
> > [keymanager] DEBUG [main]
> > KeyMetadataFormController.processFormSubmission(256) |
> >  Data binding errors: 2
> > [keymanager] DEBUG [main]
> > KeyMetadataFormControllerTest.testSave (58) | org.sprin
> > gframework.validation.BeanPropertyBindingResult: 2 errors
> > Field error in object 'keyMetadata' on field 'startDate': rejected value
> > [Sat Ja
> > n 01 00:00:00 PST 2005]; codes [
> > errors.date.keyMetadata.startDate,errors.date.st
> > artDate,errors.date.java.util.Date,errors.date]; arguments
> > [org.springframework.
> > context.support.DefaultMessageSourceResolvable: codes [
> > keyMetadata.startDate]; a
> > rguments []; default message [keyMetadata.startDate]]; default message
> > [errors.d
> > ate]
> > Field error in object 'keyMetadata' on field 'endDate': rejected value
> [Mon
> > Jan
> > 01 00:00:00 PST 2007]; codes
> > [errors.date.keyMetadata.endDate,errors.date.endDat
> > e,errors.date.java.util.Date,errors.date]; arguments
> > [org.springframework.contex
> > t.support.DefaultMessageSourceResolvable: codes [
> > keyMetadata.endDate]; arguments
> >  []; default message [keyMetadata.endDate]]; default message [
> errors.date]
> > [keymanager] INFO [main]
> > KeyMetadataFormControllerTest.endTransaction(290) | Rol
> > led back transaction after test execution
> > [keymanager] INFO [main]
> > KeyMetadataFormControllerTest.startNewTransaction(323)
> > | Began transaction (1): transaction manager
> > [org.springframework.orm.hibernate3
> >  [EMAIL PROTECTED]; default rollback =
> > true
> > [keymanager] DEBUG [main]
> > KeyMetadataFormController.processFormSubmission(256) |
> >  Data binding errors: 2
> > [keymanager] INFO [main]
> > KeyMetadataFormControllerTest.endTransaction (290) | Rol
> > led back transaction after test execution
> > Tests run: 3, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 109.045sec
> > <<<
> > FAILURE!
> > Running
> >
> com.intuit.security.keymanager.webapp.controller.KeyMetadataControllerTest
> >
> > With the following config:
> >
> >          <field property="startDate" depends="required, date">
> >               <arg0 key="keyMetadata.startDate"/>
> >               <var>
> >                   <var-name>datePattern</var-name>
> >                   <var-value>MM/dd/yyyy</var-value>
> >               </var>
> >           </field>
> >           <field property="endDate" depends="required, date">
> >               <arg0 key=" keyMetadata.endDate"/>
> >               <var>
> >                   <var-name>datePattern</var-name>
> >                   <var-value>MM/dd/yyyy</var-value>
> >               </var>
> >           </field>
> >
> > The java.util.Dates are getting populated into the model object
> correctly
> > but I am getting the error above.
> >
> > Does anyone know what I could be doing wrong.
> >
> > Thanks,
> > Abe
> >
> >
>
>
> --
> http://raibledesigns.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to