Anchor tag is providing a default value for href attribute when it should not
-----------------------------------------------------------------------------

                 Key: WW-3571
                 URL: https://issues.apache.org/jira/browse/WW-3571
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 2.2.1.1, 2.1.8
            Reporter: James House


The Anchor tag is providing a default value for href attribute when it should 
not.

Previous versions of Struts2 did not do this, and in fact the documentation for 
the tag also says there is no default value.

However it is placing a default value of the current URL, rather than leaving 
the href attribute off altogether.  (it is legal per HTML to not have an href 
attribute, and in fact we had existing code that was trying to purposely leave 
it off, but now instead of being left off, it is rendered with the current URL).

I believe the problem was introduced with the changes related to WW-3037.   
This block of code precisely:

{code}
    @Override
    protected void evaluateExtraParams() {
        super.evaluateExtraParams();

        if (href != null)
            addParameter("href", 
ensureAttributeSafelyNotEscaped(findString(href)));
        else {
            //no href, build it from URL attributes
            StringWriter sw = new StringWriter();
            urlRenderer.beforeRenderUrl(urlProvider);
            urlRenderer.renderUrl(sw, urlProvider);
            String builtHref = sw.toString();
            if (StringUtils.isNotEmpty(builtHref))
                addParameter("href", 
ensureAttributeSafelyNotEscaped(builtHref));
        }
    }
{code}

To preserve documented and previous functionality of allowing href to not be 
rendered in the tag, the entire "else" block should be removed.



-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to