我是struts2和tiles2的newbee,我有一个应用程序,我使用struts2作为mvc框架,使用tiles2作为视图组件。在我的应用程序中,我使用了两种语言,英语和马拉提语,各自的地区是en_US和mr_IN,我有tiles.xml和tiles_mr_IN.xml,当我从浏览器切换地区时,代码运行良好,但我想在英语和马拉地语之间切换,用户应该被重定向到具有相同请求参数的相同操作。我已经尝试了request_locale参数,但它不起作用。我可以发现,如果我可以在请求头中切换区域设置,或者将区域设置从struts2传递给tiles、lisner或类似的东西,请帮助我
发布于 2011-01-24 04:33:14
这个问题应该可以通过几个s2 jsp标记来解决。
此链接显示了您需要的部分内容:http://struts.apache.org/2.0.14/docs/how-do-we-change-locales.html
也就是说,它展示了如何获取一个s2 url,添加一个参数,然后使用该参数来设置区域设置。
如果有一个名为"request_locale“的参数传入,i18n拦截器将使用该参数,而不是用户代理的语言首选项。
为了使示例更适合模板更改,请执行以下操作
<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>
<s:a includeParams="get">
<s:param name="request_locale" value="mr_IN"/>
Marathi
</s:a>https://stackoverflow.com/questions/4773063
复制相似问题