[
https://issues.apache.org/jira/browse/WW-5782?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lukasz Lenart resolved WW-5782.
-------------------------------
Resolution: Fixed
> Anchor tag silently drops nested param tags when href is set
> ------------------------------------------------------------
>
> Key: WW-5782
> URL: https://issues.apache.org/jira/browse/WW-5782
> Project: Struts 2
> Issue Type: Bug
> Components: Plugin - Tags
> Reporter: Lukasz Lenart
> Priority: Major
> Fix For: 7.5.0
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> When {{<s:a>}} has an explicit {{href}} attribute, nested {{<s:param>}} tags
> are ignored and never appear in the rendered link. They are only used when
> the URL is built from the {{url}}-tag attributes ({{value}}, {{action}},
> {{namespace}}, ...).
> The main example in the {{Anchor}} javadoc shows exactly this combination, so
> it suggests behaviour the tag does not have:
> {code}<s:a id="link1" href="/do-it.action">
> <img border="none" src="<%=request.getContextPath()%>/images/delete.gif"/>
> <s:param name="id" value="1"/>
> </s:a>
> {code}
> h3. Observed
> Same nested param, different way of giving the target:
> ||Tag||Rendered||
> |{{<s:a href="/do-it.action">}} with {{<s:param name="id" value="1"/>}}|{{<a
> href="/do-it.action"></a>}}|
> |{{<s:a value="/do-it.action">}} with {{<s:param name="id" value="1"/>}}|{{<a
> href="/do-it.action?id=1"></a>}}|
> Reproduced on {{main}} (7.5.0-SNAPSHOT) with {{AnchorTagTest}}-style tests
> using {{ParamTag}}.
> h3. Cause
> In {{Anchor.evaluateExtraParams()}} the {{href}} branch only evaluates the
> {{href}} expression; the parameters collected from nested {{<s:param>}} tags
> ({{urlParameters}}) are consumed only by the {{else}} branch that renders a
> URL through {{UrlRenderer}}. No existing test covers {{href}} together with
> nested params ({{AnchorTagTest#testAddParameters}} sets an {{href}} but adds
> no params).
> h3. Expected
> Either nested params are appended to an explicit {{href}}, or the combination
> is documented as unsupported and the javadoc example is corrected. Silently
> dropping them is the one outcome that should not stay.
> Related: WW-3571 (rendering of {{<s:a>}} without any {{href}} or URL
> attributes) touches the same method.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)