2011-01-23 4 views
0

Я новичок в struts2 и tiles2, у меня есть приложение, в котором я использую struts2 как mvc framework и tiles2 как компонент вида. В моем приложении я использую 2 языка English и Marathi, соответствующие локали en_US и mr_IN У меня есть tiles.xml и tiles_mr_IN.xml , когда я переключаю язык из браузера, код отлично работает , но я хочу переключиться между английским и маратхи и пользователь должен быть перенаправлен на одно действие с теми же параметрами запроса. Я пробовал параметр satting request_locale, но он не работал. я мог бы найти, что, если я мог бы переключить локаль в заголовке запроса или передать локаль от struts2 до плитки Лизнер или некоторые вещи, как то пожалуйста, помогитеTiles2 Struts Switch Locale

ответ

1

Этот вопрос должен разрешаться с тегами JSP пара s2.

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

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

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

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

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

в

<s:url includeParams="get"> 

Обратите внимание на имя действие было пропущено, это будет по умолчанию для текущего действия (который идеально подходит для вашего template) next includeParams = "get" добавит все параметры обратно в URL-адрес, чтобы они были переданы в действие при использовании привязки. В includeParams могут быть «нет», «получить» или «все» (делать то, что вы ожидаете). Для получения дополнительной информации о s2 URL тега Престола: http://struts.apache.org/2.2.1.1/docs/url.html

Далее обратите внимание, что s2 тег разделяет большинство же funcationality как 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> 
Смежные вопросы