[
https://issues.apache.org/jira/browse/WW-3571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12993965#comment-12993965
]
James House commented on WW-3571:
---------------------------------
I don't have an immediate thought of how to redesign/re-write it such that it
fills both needs, however I will put forth an argument that explains why
someone would want to use the struts tag to render an anchor without an href:
it's still useful to use expressions/pull property values from the action
context when generating the values for other properties, such as onclick.
> 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.1.8, 2.2.1.1
> Reporter: James House
> Assignee: Maurizio Cucchiara
>
> 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 (from Anchor.java) 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 (of course
> that significantly negates WW-3037 - which apparently didn't think about the
> fact that it is legit to not have an href for the anchor).
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira