Form action always inherits parent extension
--------------------------------------------

                 Key: WW-3193
                 URL: https://issues.apache.org/struts/browse/WW-3193
             Project: Struts 2
          Issue Type: Improvement
    Affects Versions: 2.1.7
            Reporter: Jasper Rosenberg
            Priority: Minor


Here is the basic issue.  I have an url that has no extension, eg. 
/Overview-Mustang-c1234

On that page, I have a form tag that I want to have submit to action 
"changeCar.action", and so the "action" attribute is set to "changeCar".  

This used to work.  However, task 
https://issues.apache.org/struts/browse/WW-2267 changed the behavior so that 
the form's action gets the parent mapping's extension 
[DefaultActionMapper.getUriFromActionMapping() called from 
ServletUrlRenderer.renderFormUrl()], in this case the empty string, so the 
generated action ends up as just "changeCar" rather than "changeCar.action"  
Because we have some special handling for our mappings, this url ends up as a 
404.  It just doesn't seem desirable in general however that the same form 
included on different pages with different extensions will generate posts to 
two differently named urls.

I understand the concept behind this change, but I wonder if it would be safer 
to revert it, and instead add support for an attribute on the form which is 
"extension" which if present overrides the default, but otherwise the default 
is used.  Alternatively, it could be an mutli-value such as "inherit" (new 
behavior), "default" (old behavior), or ".ext" (a specific extension).  With 
the default value being "default" so as to maintain backwards compatibility to 
the 2.0 branch.

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