Cheers for that David.  Despite all my searching through the Struts 
source I couldn't figure that one out.

Luckily I'm not using modules so that should work a treat.

Thanks again,

Alan.

"David G. Friedman" <[EMAIL PROTECTED]> wrote in
news:[EMAIL PROTECTED]: 

> A solution in Struts v1.2.4 is at hand, too bad it's not some quick
> method call like getPattern().  If you can figure out what I did, you
> can use it. 
>:)  Seriously, I obtained a raw list of Action Mappings (unprocessed
>:paths, 
> as in Struts config files), then I used a Struts util class
> WildCardHelper to match the patterns, and viola!
> 
> WARNING: Since my webapp has only one struts config file, I haven't
> tested this code with Modules.  If it doesn't work and you have
> modules, you'll have to figure out how to check the ActionConfig's in
> each module's ModuleConfig (and how to get each modules ModuleConfig).
> 
> WARNING #2: Use the below code at your own risk.
> 
> WARNING #3: If I find you using my package name, I'm going to beat you
> with my copy of Struts In Action! (Am I joking?)
> 
> package com.friedsoftware.struts;
> 
> import java.util.HashMap;
> 
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> 
> import org.apache.struts.action.Action;
> import org.apache.struts.action.ActionForm;
> import org.apache.struts.action.ActionForward;
> import org.apache.struts.action.ActionMapping;
> import org.apache.struts.config.ActionConfig;
> import org.apache.struts.util.WildcardHelper;
> 
> /**
>  * @author David
>  * @struts.action path = "/hello" validate = "false" name =
>  "DavidForm" * @struts.action path = "/hi_there" validate = "false"
>  * @struts.action path = "/testpatt/**" validate = "false"
>  * @struts.action-forward name = "success" path = "/index.jsp"
>  */
> 
> public class ActionExample extends Action {
>      public ActionForward execute(ActionMapping mapping, ActionForm
>      form, 
>                HttpServletRequest request, HttpServletResponse
>                response) throws Exception {
> 
>           int counter = 0, pattern[];
>           boolean result;
>           ActionConfig[] aConfig =
>           mapping.getModuleConfig().findActionConfigs(); HashMap hm =
>           new HashMap(); String myPath = request.getPathInfo();
>           WildcardHelper wh = new WildcardHelper();
> 
>           while (counter < aConfig.length) {
>                pattern =
>                wh.compilePattern(aConfig[counter].getPath()); 
> 
>                // ******** HERE IT COMES!!!! **********
>                result = wh.match(hm, myPath, pattern);
>                if (result) {
> 
>                     // ****** Okay, now what do YOU want
>                     // to do here? Now that you've found
>                     // the regular pattern, or wildcard
>                     // expression?
>                     break;
>                }
>                counter++;
>           }
>           return (mapping.findForward("success"));
>      };
> }
> // End of Class
> 
> Regards,
> David
> 
> -----Original Message-----
> From: news [mailto:[EMAIL PROTECTED] Behalf Of Alan Pocklington
> Sent: Friday, October 15, 2004 10:55 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [REPOST] Get Raw Action Path.
> 
> 
> Thanks for the pointer.  I've been looking through the
> RequestProcessor source without any luck so far.  Maybe I'll stumble
> across it soon. 
> 
> Erik Weber <[EMAIL PROTECTED]> wrote in
> news:[EMAIL PROTECTED]:
> 
>> I don't know the specific answer to your question, but I learned a
>> lot by writing a method that prints out the key and value for every
>> attribute in every scope, and calling that method at various points
>> along the RequestProcessor timeline (by overriding various methods of
>> RequestProcessor). RequestProcessor invokes a dozen or so methods on
>> itself for every request, and during that time many attributes are
>> set and/or removed from various scopes.
>>
>> I do recall that the controller Servlet mapping was available. Not
>> sure about specific Action mappings.
>>
>> Erik
>>
>>
>>
>> Alan Pocklington wrote:
>>
>>>I have an Action defined as:
>>>
>>>  <action
>>>      path="/myaction/**"
>>>      type="...MyAction"/>
>>>
>>>Within the Action class itself I want to get at the path attribute as
>>>defined in the config file, i.e.
>>>/myaction/**.
>>>
>>>I can get the requested path, for example /myaction/somepath/xxx.do
>>>via actionMapping.getPath() but not the original path to which the
>>>action was mapped.  Is there any way I can get at this?
>>>
>>>Thanks in advance.
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>>
>>>
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 



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

Reply via email to