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

Jeromy Evans commented on WW-2726:
----------------------------------

I don't have an alternate solution, but rather than restrict this to a redirect 
couldn't it support any http status code and headers?

If we allow redirects to creep into the ActionMapper, there's probably some 4xx 
responses that are also valid to return rather than creating an invocation.

eg. if it must throw an exception, throw one with a HttpHeaders argument 
(borrowed from the rest plugin) to set the status code and headers.

> FilterDispatcher: Catch RedirectException to issue 30x code
> -----------------------------------------------------------
>
>                 Key: WW-2726
>                 URL: https://issues.apache.org/struts/browse/WW-2726
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Dispatch Filter
>            Reporter: Paul Benedict
>
> When creating my own implementation of ActionMapper, I have no way to tell 
> the FilterDispatcher to redirect to a different page. I am creating an alias 
> in effect.
> Here's what is going on:
> 1. I invoke the superclass to match an action mapping. if found, return.
> 2. Match again adding "/index.action" to the servlet path. if found, return.
> 3. Match again adding "index.action" (no slash) to the servlet path. if 
> found, return.
> Aside from the obvious inefficiencies to be resolve, it should be plain what 
> my intent is. I am executing the index action for a directory path, but 
> there's no good way to get #3 to issue a redirect. URIs ending in /foo should 
> become /foo/ in the browser.
> Therefore, I pull a page from the Tapestry book. You can throw a 
> RedirectException with a path and a temporary/permanent flag to set the 
> correct HTTP status.

-- 
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