Tiles2 Struts Switch Locale - PullRequest
       29

Tiles2 Struts Switch Locale

0 голосов
/ 23 января 2011

Я новичок в Struts2 и Tiles2, у меня есть приложение, в котором я использую Struts2 в качестве фреймворка MVC и Tiles2 в качестве компонента представления.В моем приложении я использую два языка: английский и маратхи. Соответствующие локали - en_US и mr_IN. У меня есть tile.xml и tile_mr_IN.xml, когда я переключаю локаль из браузера, код работает нормально, но я хочу переключаться между английским и маратхибыть перенаправлены на одно и то же действие с теми же параметрами запроса.Я пытался сателлита параметр request_locale, но он не работал.Я мог бы найти, что, если бы я мог переключить локаль в заголовке запроса или передать локаль из struts2 в lisner тайлов или что-то в этом роде, помогите

1 Ответ

1 голос
/ 23 января 2011

Эта проблема должна быть решена с помощью пары тегов s2 jsp.

Эта ссылка показывает часть того, что вам нужно: http://struts.apache.org/2.0.14/docs/how-do-we-change-locales.html

То есть показывает, как взять URL-адрес s2, добавить параметр, а затем использовать его для установки языкового стандарта.

Если в перехватчике i18n есть параметр под названием «request_locale», он будет использовать его вместо языковых предпочтений пользовательских агентов.

Чтобы пример лучше подходил для смены шаблона

<s:url id="en" action="Welcome">

до

<s:url includeParams="get">

Обратите внимание, что имя действия было опущено, по умолчанию это будет текущее действие (которое идеально подходит для вашего шаблона), после чего includeParams = "get" добавит все параметры обратно в URL, чтобы они были переданы в действие, когда вы используете якорь. 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>
...