-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

All,
Poking at this thread to see if I can get any bites.

- -chris

Christopher Schultz wrote:
> All,
> 
> I have two actions in my code that I want to be able to cancel out-of,
> but neither of them is exciting enough to warrant a form bean and a trip
> through the validator. I have found that Action.isCancelled does not
> work when this is the case.
> 
> A simple hackaround is to do this in my action code:
> 
>       if(super.isCancelled(request)
>          || null !=
> request.getParameter(org.apache.struts.taglib.html.Constants.CANCEL_PROPERTY))
>         {
>              // handle cancellation
>         }
> 
> This week, I'm upgrading to struts-1.3.5, which has the taglib JAR
> separate from the core JAR, which means that I need to drag the taglib
> JAR along with my upgrade, and I'd prefer not to do so (ignore the fact
> that I need that JAR file for velocity-tools to work ;).
> 
> I figured it's time for me to get to the bottom of this problem, and I'm
> finding myself getting quite confused reading through the code.
> 
> First, anyone who looks will note that the name of the "cancel" button
> used by the struts form tag library (and the FormTool from
> velocity-tools's struts tools) get the name
> "org.apache.struts.taglib.html.CANCEL", which is the string value of
> org.apache.struts.taglib.html.Constants.CANCEL_PROPERTY.
> 
> So far, so good.
> 
> Now, to find out how Aciton.isCancelled works. It's pretty simple: it
> checks for a request attribute:
> 
>     protected boolean isCancelled(HttpServletRequest request) {
>         return (request.getAttribute(Globals.CANCEL_KEY) != null);
>     }
> 
> The string value for Globals.CANCEL_KEY is
> "org.apache.struts.action.CANCEL", which doesn't match up with that used
> by the tag libaray. No big deal... it probably gets detected somewhere
> in the request processor, right?
> 
> Well, I checked. The RequestProcessor only mentions "cancel" in the
> processPopulate method, which delegates some processing to
> RequestUtils.populate and then checks the request parameters for
> Globals.CANCEL_KEY (or Globals.CANCEL_KEY_X for image submissions). No
> luck there, so let's look at RequestUtils.populate.
> 
> RequestUtils.populate only sets properties on the ActionForm, and
> doesn't mess with the request.
> 
> I can't seem to find the place where (under regular circumstances) the
> request parameter "...taglib.html.CANCEL" gets converted into the
> request attribute Globals.CANCEL.
> 
> Can someone help me understand how this works? I'd like to do the
> "right" thing, here, and I need to understand how struts handles this
> stuff during form submission so I can get it working when there is no form.
> 
> Any enlightenment would be appreciated.
> 
> -chris

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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFukwY9CaO5/Lv0PARArKVAKCwrci12h/ga7Ux7PwIuCrclCQDQwCbBFLh
Tzb4gamCkvGoK+7WbcEwH5k=
=c6OG
-----END PGP SIGNATURE-----

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

Reply via email to