[ 
https://issues.apache.org/struts/browse/WW-2818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44767#action_44767
 ] 

Dave Newton commented on WW-2818:
---------------------------------

I use the default stack and XML-based validation all the time and don't have 
this issue.

Are you using Spring?

> ActionSupport, defaultStack and xml validation combo doesn't work on 
> subsequent submits
> ---------------------------------------------------------------------------------------
>
>                 Key: WW-2818
>                 URL: https://issues.apache.org/struts/browse/WW-2818
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Actions, Core Interceptors
>    Affects Versions: 2.1.2
>         Environment: struts 2.1.2, xwork 2.1.1 
>            Reporter: james baker
>
> When you have an action that extends ActionSupport any errors are persisted 
> forever and cannot be corrected.
> Scenario: -
> 1. Submit form leaving required field blank
> 2. AnnotationValidationInterceptor picks this up and adds action errors.
> 3. DefaultWorkflowInterceptor sees there are errors and is instanceof 
> ValidationAware (from ActionSupport) so returns input without bothering your 
> action.
> 4. Fill in required field and re submit.
> 5. Get the same error! Wuh?
> This seems to happen because of the following: -
> DefaultActionInvocation init() creates an ActionContext which contains all 
> the fields on the Action.
> createAction() puts everything from ActionContext back on the Action.
> One of the fields inherited from ActionSupport is validationAware which gets 
> set here.
> At no point in the default interceptor stack (nor can i see in any of the 
> provided interceptors) is validationAware reset which means the action errors 
> and messages stay there.
> AnnotationValidationInterceptor doesn't add any more errors.
> When you reach the DefaultWorkflowInterceptor it stops you from proceeding 
> because errors exist (from the previous submit)
> You can never get in to your action to reset the errors so what are you 
> supposed to do.
> If you take out the workflow inteceptor you will have to manually check for 
> action errors added by the validation inteceptor.
> You can't clear errors in validate() on your action because xmls are parsed 
> first.
> This has stumped me for now (will probably add my own inteceptor to reset 
> messages on ValidationAware actions)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to