You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Murray Furtado <mu...@googlemail.com> on 2009/10/23 15:11:01 UTC
Re: Struts2 Validation Problem - validation errors not being cleared
when corrected!
Hehe, I've just resolved my own issue!
The problem was my spring configuration. I needed to
specify scope="prototype" on each of my Struts 2 Action declarations.
Singleton actions were being created and thus previous field errors were
being carried over between requests.
I'm surprised this isn't a more common gotcha that should be highlighted in
the documentation.
Rgds
Murray
2009/10/23 Murray Furtado <mu...@googlemail.com>
> Hi,
> I'm using Struts 2.0.14 and validation annotations. I have a
> UpdateUserAction class which implements ModelDriven and declares the
> execute() method with the following :
>
> @Validations( visitorFields = { @VisitorFieldValidator(message="",
> fieldName="model")} )
>
> My model is a User class which has a number of @RequiredStringValidators,
> etc.
>
> When I test the functionality I login to my app as a user with all it's
> fields populated (ie a valid user). I then update a dropdown box in the
> Update User jsp to the 'Select' value, to invalidate this property (declared
> with a @RequiredStringValidator). Sure enough, when I submit the form, I
> get a field error telling me this is a required field. So far so good.
>
> However when I then correct that field and resubmit, I still get the error!
> I've added debug code to the prepare() method of the UpdateUserAction and
> it shows that the previous field error is still present when I submit the
> corrected form. This is strange because my understanding is that field
> errors should get cleared between requests, and the validation framework
> shouldn't fire until after the prepare() method has fired. So why am I
> seeing validation errors in the prepare method? And why aren't they
> clearing?
>
> What's even more frustrating is that I've downloaded the source code for
> the xworks 2.0.7 package, and attached as source in Eclipse Galileo, but
> then I can't set breakpoints in any of the xwork codebase to step through,
> as each time I try and open an xwork java file, it takes me to the .class
> file instead.
>
> Can anyone shed light on my problems as I can't see what I'm doing wrong?
>
> Thanks in advance,
>
> Murray
>
>
>