Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Смена локали в Struts 2


Автор: Pawl 20.1.2013, 21:04
Доброго времени суток.
Решил поковырять Struts 2 и, собственно, споткнулся на сабже. Примеры, что я находил, достаточно древние либо неработающие или неподходящие. На их основе сварганил нечто также неработающее. Но, может быть, я на верном пути, и не хватает последнего штриха для полного счастья? Посмотрите, пожалуйста, мой код, и подскажите хотя-бы, куда мне копать дальше:
struts.xml
Код

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <constant name="struts.devMode" value="true" />
    <constant name="struts.i18n.reload" value="true" />
    <constant name="struts.custom.i18n.resources" value="local" />
    <package name="hello"  namespace="/" extends="struts-default">
        <action name="hello"
                class="study.struts2.HelloWorldAction"
                method="execute">
            <result name="success">/HelloWorld.jsp</result>
            <result name="input">welcome.jsp</result>
        </action>
    </package>
    <package name="default" namespace="/" extends="struts-default">
        <interceptors>
            <interceptor name="i18n" class="com.opensymphony.xwork2.interceptor.I18nInterceptor"/>
        </interceptors>
        <action name="locale" class="study.struts2.LocaleAction" method="execute">
            <interceptor-ref name="i18n"/>
            <result name="SUCCESS">/welcome.jsp</result>
        </action>
    </package>
</struts>

LocaleAction
Код

package study.struts2;

public class LocaleAction {
    public String execute() {
        return "SUCCESS";
    }
}

кусок кода jsp, который должен отвечать за смену локали
Код

    <s:url id="localeEN" action="locale">
        <s:param name="request_locale">en</s:param>
    </s:url>
    <s:a href="%{localeEN}">English</s:a>

    <s:url id="localeRU" action="locale">
        <s:param name="request_locale">ru</s:param>
    </s:url>
    <s:a href="%{localeRU}"><s:text name="lang_ru"/></s:a>

Как видно, тут есть ссылки для смены локали, так вот, они не работают. Т. е., если их нажать, страница перегрузится, но локаль не поменяется.
Пока не знаю, что делать, поэтому буду благодарен за любую помощь.

Автор: Pawl 21.1.2013, 11:15
Вопрос снят. http://www.tutorialspoint.com/struts_2/struts_localization.htm хороший пример.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)