You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Kevin Wade <kw...@mindspring.com> on 2008/04/02 23:02:01 UTC

[s2] conversion validator and repopulateField

Hello.  I am having a problem getting "repopulateField" to work.  In  
short, I have added date validation to one of my actions.  In my  
validation xml file, I have this:

     <field name="moviereview.reviewdate">
         <field-validator type="conversion" short-circuit="true">
         	<param name="repopulateField">true</param>
        		<message>Date of Review entered is not a valid date.</message>
        </field-validator>
         <field-validator type="date">
           	<param name="min">01/01/2007</param>
           	<param name="max">12/31/2008</param>
           	<message>Date of Review is out of range. </message>
  	</field-validator>
     </field>

My problem is that "repopulateField" is not actually repopulating the  
moviereview.reviewdate field on a conversion error.  The field is blank.

In my action, I have a "moviereview" object that has a getter and  
setter (i.e. "setMoviereview() and getMoviereview()").  So,  
"reviewdate" is a Date that belongs to that parent object.  I don't  
know if that's related at all, though.

Any idea why this isn't working?

Kevin


Re: [s2] conversion validator and repopulateField

Posted by Kevin Wade <kw...@mindspring.com>.
Ok, I think I have the solution to my own problem.  Since reviewdate  
is a date field, I was using the s:date tag in my jsp, like this:

<s:date name="moviereview.reviewdate" format="% 
{getText('struts.date.format')}" id="reviewdateFormatted"/>
<s:textfield  value="%{reviewdateFormatted}"  
name="moviereview.reviewdate" size="12" maxlength="10"/

I gather that reviewdate can't be set properly when I use the date tag  
like this since what's being repopulated most likely won't be a valid  
date.

To get around this, I just added a test for the presence of  
fielderrors before using the s:date tag. If none are there, then use  
the date tag.  If it is there, then just display the reviewdate field  
directly.

Kevin


On Apr 2, 2008, at Wednesday, April 2, 2008  - 5:02 PM, Kevin Wade  
wrote:

> Hello.  I am having a problem getting "repopulateField" to work.  In  
> short, I have added date validation to one of my actions.  In my  
> validation xml file, I have this:
>
>    <field name="moviereview.reviewdate">
>        <field-validator type="conversion" short-circuit="true">
>        	<param name="repopulateField">true</param>
>       		<message>Date of Review entered is not a valid date.</message>
>       </field-validator>
>        <field-validator type="date">
>          	<param name="min">01/01/2007</param>
>          	<param name="max">12/31/2008</param>
>          	<message>Date of Review is out of range. </message>
> 	</field-validator>
>    </field>
>
> My problem is that "repopulateField" is not actually repopulating  
> the moviereview.reviewdate field on a conversion error.  The field  
> is blank.
>
> In my action, I have a "moviereview" object that has a getter and  
> setter (i.e. "setMoviereview() and getMoviereview()").  So,  
> "reviewdate" is a Date that belongs to that parent object.  I don't  
> know if that's related at all, though.
>
> Any idea why this isn't working?
>
> Kevin
>