Struts2實現用戶自行選擇語言

      該項目的完整的源代碼下載地址:http://download.csdn.net/detail/yanglun1/8769169


      在Struts2中,可以通過ActionContext.getContext().setLocale(Locale arg)設置用戶的默認語言。爲了簡化設置用戶默認語言環境,Struts2提供了一個名爲i18n的攔截器,並且將其註冊在默認的攔截器中。


      在此補充i18n攔截器的作用:主要負責把用戶所選的語言、區域放入用戶的session中。


      下面介紹如何利用該攔截器實現自主選擇網頁語言,該程序的思路是:i18n攔截器在執行Action之前,自動查找請求中一個名爲request_locale的參數,如果該參數存在,攔截器就將其作爲參數,轉換成Locale對象,並將其設爲用戶默認的Locale;程序中通過request_locale的參數傳遞不同的參數(zh_CN或者en_US)來實現頁面語言符號的變化。改程序的整體目錄結構爲:


      

      在Struts配置文件中,主要配置的就是一個Action,此處的Action的name屬性需要同你的超鏈接的action屬性相同。該Action用來在轉向之前,根據i18n攔截器來獲取request_locale的值,從而根據獲取的值來獲取需要顯示頁面的語言。示例代碼如下:


Index.jsp中的部分代碼如下:

<a href="lang.action?request_locale=zh_CN">中文</a>

<a href="lang.action?request_locale=en_US">English</a>


struts.xml中的配置代碼如下:

<!-- 此處的value值一定要和你的語言配置文件的前面部分一致 -->

<constant name="struts.custom.i18n.resources" value="loginResource"></constant>


<action name="lang" class="com.action.LoginAction"method="language">

    <result name="input">/index.jsp</result>

</action>


      到此這個項目就完成了,其實實現這個功能就是用到了i18n攔截器,這也體現了struts2功能的強大,一切都給你封裝好了,你需要做的就是學會如何取運用它。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章