2011-01-23 28 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>