0

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

4

1 に答える 1

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 は、「none」、「get」、または「all」にすることができます (期待どおりの動作をします)。s2 url タグの詳細については、http ://struts.apache.org/2.2.1.1/docs/url.html を参照してください。

さらに、s2 a タグは、これを利用して s2 url タグと同じ機能のほとんどを共有することに注意してください。

<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>
于 2011-01-23T20:33:14.293 に答える