2011-01-23 5 views
0

私はstruts2とtiles2のnewbeeです。私はmvcフレームワークとしてstruts2を使用し、ビューコンポーネントとしてtiles2を使用しています。 私のアプリケーションで私は2つの言語を使用しています英語とマラーティーそれぞれのロケールはen_USとmr_INです 私はtiles.xmlとtiles_mr_IN.xmlを持っています 私はブラウザからロケールを切り替えるとコードはうまく動作しますが 英語とMarathiを切り替えたいユーザーは同じ要求パラメータで同じアクションにリダイレクトされる必要があります。 私はrequest_localeパラメータをsatしようとしましたが、動作しませんでした。 私はその のようなリクエストヘッダにロケールを切り替えるかlisnerタイルにStruts2のからロケール渡したり、いくつかのことができればTiles2 Strutsスイッチロケール

答えて

1

は、この問題は、カップルの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"(あなたが期待することをやっている)かもしれません。 http://struts.apache.org/2.2.1.1/docs/url.html

さらにノートS2タグ株式はこれを利用して、S2のURLのタグと同じfuncationalityのほとんどが生成されること:

<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> 
S2のURLのタグを参照してください。詳細については、