Эта проблема должна быть решена с помощью пары тегов 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>
<s:a includeParams="get">
<s:param name="request_locale" value="mr_IN"/>
Marathi
</s:a>