You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Lukasz Lenart (Jira)" <ji...@apache.org> on 2026/10/16 09:25:00 UTC

[jira] [Created] (WW-5783) Anchor tag should apply nested param tags to an explicit href

Lukasz Lenart created WW-5783:
---------------------------------

             Summary: Anchor tag should apply nested param tags to an explicit href
                 Key: WW-5783
                 URL: https://issues.apache.org/jira/browse/WW-5783
             Project: Struts 2
          Issue Type: Improvement
          Components: Plugin - Tags
            Reporter: Lukasz Lenart
             Fix For: 8.0.0


Today {{<s:a href="...">}} ignores nested {{<s:param>}} tags; they are only used when the URL is built from {{value}}/{{action}}. WW-5782 documents this and adds a devMode warning while keeping the rendered output unchanged in 7.x.

For 8.0.0, {{<s:a>}} should be a self-sufficient link builder: nested params are applied to an explicit {{href}} as well, so

{code}<s:a href="/do-it.action">
    <s:param name="id" value="1"/>
</s:a>
{code}

renders {{<a href="/do-it.action?id=1">}}.

h3. Points to settle
* {{href}} that already has a query string ({{/do-it.action?x=1}}) and/or a {{#fragment}} - params must be merged before the fragment.
* {{escapeAmp}} and {{encode}} must behave as on the {{value}} path; reuse the {{UrlRenderer}} / {{UrlHelper}} param handling instead of string concatenation.
* {{href}} evaluated from a URL built by {{<s:url var="...">}} is already a complete URL, possibly with its own params; decide precedence when a nested param repeats a name.
* Remove the devMode warning added by WW-5782 and update the {{href}} attribute description and the {{Anchor}} javadoc.

h3. Compatibility

Pages that currently nest {{<s:param>}} under an explicit {{href}} will start emitting those params. Needs a migration note.

Related: WW-5782, WW-3571 (both change what {{<s:a>}} renders).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)