You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Robert Taylor <64...@bellsouth.net> on 2005/10/16 12:10:53 UTC

Validation and error messages in session

Greetings, I'm using Struts 1.2.7 and noticed that functionality has 
been added to the Action class to store error messages in the session 
and subsequently be removed after they have been rendered. This is quite 
helpful in some circumstances.

I also know that error messages can be placed in the session or request 
scope when using the Exception handling framework. Again, this is quite 
helpful in some circumstances.

Are there plans to add this to the Validation framework as well such 
that we can declaratively identify the scope in which to place the 
validation messages. I know that upon a validation error that the 
default RequestProcessor forwards to a configured url and that since the 
request is forwarded, then there is no need to store them in the session.

I recently came upon a case where I have a page with conditionally 
"imported" page fragments. The page fragment contained an iframe with 
some dynamic text input fields. Upon a validation error in the iframe, 
it forwarded the request to its parent which subsequently rendered the 
page which subsequently and conditionally imported the page which was 
supposed to contain the validation error message. Since the import 
(c:import) was considered a separate request, the validation error 
messages was lost.

I ended up subclassing the ActionMapping class, adding a 
validationMessageScope property.
I also subclassed the RequestProcessor processValidate() and added logic 
to look for the subclassed ActionMapping class; if found to look up the 
scope into which to place the validation error messages. If the property 
had not been set, defaulted to the request scope.

So when ever I need to propogate the validation error message across 
requests, I just add a <set-property property="validationMessageScope" 
value="session"/> and the error messages is placed in the session.
Struts takes care of removing the error messages from the session after 
they have been rendered.

I know this is a special case. The only reason I ask is that Struts 
already supports the concept of storing the messages in the session and 
the current Exception Handling framework supports this concept. It 
didn't seem like too much of a stretch, to allow the Validation 
framework to support it.

Just a thought.

/robert


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Validation and error messages in session

Posted by Adam Hardy <ah...@cyberspaceroad.com>.
It's a shame no-one answered this. I was interested in reading a reply.

My situation is that on validation failure, my 'input' mapping is to 
another action, not direct to a JSP, so that I can carry out the 
necessary view helper code. As part of this I can also grab the 
validation errors from the request scope and save them in session if I want.

However I like the idea of declaring that the errors go straight into 
session scope.

Adam

Robert Taylor on 16/10/05 11:10, wrote:
> Greetings, I'm using Struts 1.2.7 and noticed that functionality has 
> been added to the Action class to store error messages in the session 
> and subsequently be removed after they have been rendered. This is quite 
> helpful in some circumstances.
> 
> I also know that error messages can be placed in the session or request 
> scope when using the Exception handling framework. Again, this is quite 
> helpful in some circumstances.
> 
> Are there plans to add this to the Validation framework as well such 
> that we can declaratively identify the scope in which to place the 
> validation messages. I know that upon a validation error that the 
> default RequestProcessor forwards to a configured url and that since the 
> request is forwarded, then there is no need to store them in the session.
> 
> I recently came upon a case where I have a page with conditionally 
> "imported" page fragments. The page fragment contained an iframe with 
> some dynamic text input fields. Upon a validation error in the iframe, 
> it forwarded the request to its parent which subsequently rendered the 
> page which subsequently and conditionally imported the page which was 
> supposed to contain the validation error message. Since the import 
> (c:import) was considered a separate request, the validation error 
> messages was lost.
> 
> I ended up subclassing the ActionMapping class, adding a 
> validationMessageScope property.
> I also subclassed the RequestProcessor processValidate() and added logic 
> to look for the subclassed ActionMapping class; if found to look up the 
> scope into which to place the validation error messages. If the property 
> had not been set, defaulted to the request scope.
> 
> So when ever I need to propogate the validation error message across 
> requests, I just add a <set-property property="validationMessageScope" 
> value="session"/> and the error messages is placed in the session.
> Struts takes care of removing the error messages from the session after 
> they have been rendered.
> 
> I know this is a special case. The only reason I ask is that Struts 
> already supports the concept of storing the messages in the session and 
> the current Exception Handling framework supports this concept. It 
> didn't seem like too much of a stretch, to allow the Validation 
> framework to support it.
> 
> Just a thought.
> 
> /robert
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org