2011-01-23 58 views
0

我是struts2和tiles2的新手,我有一个应用程序,其中我使用struts2作为mvc框架和tiles2作为视图组件。 在我的应用程序我使用2种语言英语和马拉地语各自的语言环境是en_US和mr_IN 我有tiles.xml和tiles_mr_IN.xml 当我从浏览器切换语言环境代码工作正常 但我想切换英语和马拉地语并且用户应该被重定向到具有相同请求参数的相同动作。 我已经尝试satting request_locale参数,但它没有工作。 我能找到,如果我能在请求头切换区域或区域Struts2的传递给lisner瓷砖或一些事情一样, 请帮助Tiles2 Struts切换区域设置

回答

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网址标签详细信息请参阅:http://struts.apache.org/2.2.1.1/docs/url.html

进一步注意到,S2标签股大部分相同funcationality作为利用这一点的S2网址中的标记会产生:

<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>