如何更改I18N语言环境不是通过查询字符串?

时间:2012-11-20 07:12:01

标签: java javascript struts2

这是一个struts2问题。

目前,我正在使用i18n在我的webapp中进行国际化。 我的一些jsp页面有查询字符串来存储请求信息。 例如,

http://myWebsite.com/myWebsite/myPage?productId=12345

当用户尝试切换语言时,我会将javascript重写为

http://myWebsite.com/myWebsite/myPage?request_locale=zh_CN

它丢失了查询字符串。

我的网址以不同的方式使用:

http://myWebsite.com/myWebsite/myPage
http://myWebsite.com/myWebsite/myPage?productId=12345#myAnchor
http://myWebsite.com/myWebsite/myPage?productId=12345&key2=value2&key3=value3#myAnchor
http://myWebsite.com/myWebsite/myPage?productId=12345&key2=value2&key3=value3&request_locale=zh_CN
http://myWebsite.com/myWebsite/myPage?productId=12345&key2=value2&key3=value3
...

当我尝试在javascript中处理所有这些差异时,它变得如此复杂。

在切换区域设置后,有没有什么好方法可以保留查询字符串和锚点?

1 个答案:

答案 0 :(得分:0)

使用JS重写URL时,应该根据当前URL进行。

所以,如果在浏览器中显示

http://myWebsite.com/myWebsite/myPage?productId=12345

你应该把它重写为

http://myWebsite.com/myWebsite/myPage?productId=12345&request_locale=zh_CN

为此,使用JS,您应该显示当前的URL。请查看此question了解如何使用。