[
https://issues.apache.org/jira/browse/TAPESTRY-399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jesse Kuhnert resolved TAPESTRY-399.
------------------------------------
Resolution: Fixed
Ok, should really be fixed now.
> If a RedirectException is thrown after IEngine.setLocale(...) has been
> called, the cookie org.apache.tapestry.locale is not being set
> -------------------------------------------------------------------------------------------------------------------------------------
>
> Key: TAPESTRY-399
> URL: https://issues.apache.org/jira/browse/TAPESTRY-399
> Project: Tapestry
> Issue Type: Bug
> Components: Framework
> Affects Versions: 4.1.2
> Reporter: Jonas Maurus
> Assignee: Jesse Kuhnert
> Fix For: 4.1.3
>
>
> At the moment it seems not to be possible to change the engine locale and
> redirect to the current page so the locale settings take effect immediatly.
> As you can see I tried doing the redirect manually (via .forward()), but that
> didn't change a thing.
> WORK AROUND -------------------------
> Work-around (this seems to work in Beta 2):
> @InjectObject("infrastructure:cookieSource")
> public abstract CookieSource getCookieSource();
> then in the listener do:
> // note that Locale.toString() returns the programmatic code of the
> locale (for example "de_DE" or "en_US")
> getCookieSource().writeCookieValue("org.apache.tapestry.locale",
> Locale.GERMANY.toString());
> throw new RedirectException([myurl]);
> TEST CODE -------------------------
> template:
> <a jwcid="@ActionLink" stateful="false"
> listener="ognl:listeners.changeToGerman">de</a>
> listener:
> public void changeToGerman(IRequestCycle cycle) {
> cycle.getEngine().setLocale(Locale.GERMANY);
> // this also does not send the cookie
> //
> cycle.getInfrastructure().getRequest().forward(getEngineService().getLink(cycle,
> cycle.getPage().getPageName()).getAbsoluteURL());
> throw new RedirectException(getEngineService().getLink(cycle,
> cycle.getPage().getPageName()).getURL());
> }
> @InjectObject("engine-service:page")
> public abstract IEngineService getEngineService();
> Header dump:
> actual response:
> HTTP/1.x 302 Moved Temporarily
> Server: Apache-Coyote/1.1
> Location: http://localhost:81/cip/Home.cip
> Content-Length: 0
> Date: Thu, 14 Jul 2005 14:04:57 GMT
> expected response:
> HTTP/1.x 302 Moved Temporarily
> Server: Apache-Coyote/1.1
> Location: http://localhost:81/cip/Home.cip
> Content-Length: 0
> Date: Thu, 14 Jul 2005 14:04:57 GMT
> Set-Cookie: org.apache.tapestry.locale=de_DE; Path=/cip
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]