2012-12-20 84 views
0

我想將我的web應用國際化爲多個語言環境。i18n和struts 1.3

我發現了幾個例子,如this

他們的工作,但在這種情況下,它總是顯示在同一頁面(即如果用戶更改任何頁面中的語言,他/她被重定向到主頁例如)。

如果用戶點擊國旗(html:鏈接代碼位於所有其他jsp包含的jsp文件中),則會重新加載頁面(用戶所在的頁面)。 我該怎麼辦?

回答

0

你舉的例子鏈接是清楚的:當選擇該國國旗的鏈接去你的「LanguageAction」,設置區域設置是這樣的:

request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.FRANCE); 

最後,重定向頁面返回到最後查看的頁面。這需要您在更改區域設置之前獲取請求URL。

我希望這會有所幫助。

+0

所以我沒有使用'return mapping.findForward(「success」);',有我嗎?你能給一個重定向的例子或鏈接?提前致謝。 – Sefran2

+0

看看Struts ['ActionRedirect'](http://struts.apache.org/1.x/struts-core/apidocs/org/apache/struts/action/ActionRedirect.html)(它擴展了'ActionForward')。 [實施例](http://javahelpline.wordpress.com/2012/09/05/forwarding-to-action-with-url-parameter-in-struts/)。 –

+0

在使用'request.getHeader(「Referer」)'設置區域設置之前,我保存了url,然後使用'return new ActionRedirect(url)'。它可以工作,但如果jsp頁面是servlet執行的結果或者params是通過post傳遞的,我不會獲得希望的結果。我應該以另一種方式獲得網址嗎? – Sefran2