> Hmm, maybe I don't understand the problem... as I understand it, cancel 
> essentially has no
effect on anything in Struts unless you manually check for it and act 
accordingly, correct?  Or
are you saying that everything happens *except* validation?

Correct. Cancel has no effect unless you religiously check for it and do 
something with it..
unless you use a DispatchAction in which the "cancelled" method is always 
invoked. 

> That's the part I guess I'm not clear on... how is validation bypassed? Is 
> that *ALL* that is
bypassed, or is form population bypassed too?

This is the code from RequestProcessor.processPopulate:

========================================================
RequestUtils.populate(form, mapping.getPrefix(), mapping.getSuffix(), request);

// Set the cancellation request attribute if appropriate
if ((request.getParameter(Constants.CANCEL_PROPERTY) != null) ||
(request.getParameter(Constants.CANCEL_PROPERTY_X) != null)) {
request.setAttribute(Globals.CANCEL_KEY, Boolean.TRUE);
}
========================================================

According to the code the form is always populated. If the cancel button is in 
the request, the
cancel request attribute is added; this is then used in processValidate() to 
skip validation. 

Try it yourself!! Just add "?org.apache.struts.taglib.html.CANCEL=true" to any 
GET URL and your
execute() method will magically be called as if you didn't have any validation 
added to your code.

Paul

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to