2010-04-22 37 views
2

我正在使用struts2並且在我的struts.xml中我編寫了以下代碼用於語言環境切換 -struts2:在語言環境切換後如何在用戶所在的同一頁面上返回?

<action name="switchToEnglish"> 
     <interceptor-ref name="i18n"/> 
     <interceptor-ref name="basicStack"/> 
     <result name="input">error.jsp</result> 
     <result name="success">login.jsp</result> 
</action> 

<action name="switchToFrench"> 
     <interceptor-ref name="i18n"/> 
     <interceptor-ref name="basicStack"/> 
     <result name="input">error.jsp</result> 
     <result name="success">login.jsp</result> 
</action> 

現在,語言切換後出現相同的頁面(login.jsp)。但是,我想在語言切換之前返回用戶所在的頁面。

在此先感謝。

回答

2

我有同樣的問題。我通過將網頁名稱的動作(通過GET或POST)解決它,然後我用它的結果是這樣的:

<action name="switchToEnglish"> 
    <interceptor-ref name="i18n"/> 
    <interceptor-ref name="basicStack"/> 
    <result name="input">error.jsp</result> 
    <result name="success">%{currentPage}</result> 
</action> 

<action name="switchToFrench"> 
    <interceptor-ref name="i18n"/> 
    <interceptor-ref name="basicStack"/> 
    <result name="input">error.jsp</result> 
    <result name="success">%{currentPage}</result> 
</action> 

不要忘記設置的getter/setter在「當前頁」行動類。

這不是最好的辦法,但它可以爲我的應用程序。

+0

謝謝你的提示:) – Denees 2011-07-02 08:51:45

1

我再此,有一個AJAX請求LocaleAction,成功,只刷新使用jQuery的頁面,你會留在同一個頁面,你是語言環境變化之前。

腳本:

<script type="text/javascript"> 
$(document).ready(function(){ 

    $(".lang").click(function() { 
     var id = $(this).attr("id"); 
     $.ajax({ 
      type: "POST", 
      url: "locale.action?lang="+id, 
      cache: false, 
      success: function(){ 
       window.location.href=''; 
      } 
     }); 
     return false; 
    }); 
}); 
</script> 

而且鏈接:

 <span style="float: right;"> 
      <s:a id="ro" cssClass="lang">Română</s:a> 
      &bull; 
      <s:a id="ru" cssClass="lang">Русский</s:a> 
      &bull; 
      <s:a id="en" cssClass="lang">English</s:a> 
     </span> 
+0

我已經試過這一點,並在Struts 2中不起作用,甚至改變郎通過request_locale參數 – aloplop85 2015-09-05 16:55:24

相關問題