0

我是 struts2 和 tiles2 的新手,我有一个应用程序,我使用 struts2 作为 mvc 框架,使用 tiles2 作为视图组件。在我的应用程序中,我使用 2 种语言英语和马拉地语,各自的语言环境是 en_US 和 mr_IN 当我从浏览器切换语言环境时,我有 tiles.xml 和 tiles_mr_IN.xml 代码工作正常,但我想在英语和马拉地语之间切换,用户应该被重定向到具有相同请求参数的相同操作。我试过坐在 request_locale 参数,但它没有用。我可以发现,如果我可以在请求标头中切换语言环境或将语言环境从 struts2 传递到 tile lisner 或类似的东西,请帮助

4

1 回答 1

1

这个问题应该可以通过几个 s2 jsp 标签来解决。

此链接显示了您需要的部分内容:http: //struts.apache.org/2.0.14/docs/how-do-we-change-locales.html

那就是它展示了如何使用 s2 url 添加一个参数,然后使用它来设置语言环境。

如果 i18n 拦截器中有一个名为“request_locale”的参数,将使用该参数而不是用户代理语言首选项。

使示例更适合模板更改

<s:url id="en" action="Welcome">

<s:url includeParams="get">

请注意,动作名称已被省略,这将默认为当前动作(这对于您的模板来说是理想的)接下来 includeParams="get" 会将所有参数添加回 url 以便在您将它们传递到动作中使用锚。includeParams 可能是“none”、“get”或“all”(按照您的期望执行)。有关 s2 url 标记的更多信息,请参见:http ://struts.apache.org/2.2.1.1/docs/url.html

进一步注意,s2 a 标签与 s2 url 标签共享大部分相同的功能,利用这一点将产生:

<s:a includeParams="get">
  <s:param name="request_locale" value="en_US"/>
  English
</s:a>
&nbsp;
<s:a includeParams="get">
  <s:param name="request_locale" value="mr_IN"/>
  Marathi
</s:a>
于 2011-01-23T20:33:14.293 回答