Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

We're trying to change the locale using the <url> tag, but after using the link, they all have an extra request parameter appended. A link that reads on the first display Welcome.do?request_locale=en, after being used reads Welcome.do?request_locale=en&request_locale=en".

Here's the code we're using:

Code Block
java
java
titleDoesn't work right!
<ul>
   <li><a href="<s:url action="Welcome?request_locale=en"/>">English</a></li>
   <li><a href="<s:url action="Welcome?request_locale=ja"/>">Japanese</a></li>
   <li><a href="<s:url action="Welcome?request_locale=ru"/>">Russian</a></li>
</ul>

The URL tag isn't meant to be used with a query string. The best way to write this would be:

Code Block
java
java
titleUse the param tag instead
<s:url action="Welcome">
 <s:param name="request_locale" value="en" />
</s:url>

The reason is the url tag has this "includeParams" tag, which can automatically include all the query string parameters in the URL. The default value is GET, meaning all the GET parameters will be automatically included in the final URL, which is what we see here.