JSTL Я изменил язык и на других подстраницах вернулся к языку по умолчанию - PullRequest
0 голосов
/ 05 января 2019

У меня проблема с библиотекой форматирования JSTL. Когда я изменил и нажал ссылку на другую подстраницу, он возвращает мне сайт с языком по умолчанию, а не с тем, что я выбрал.

У меня есть четыре файла с сообщениями:

mylabels_pl_PL.properties

mylabels_en_EN.properties

mylabels_de_DE.properties

mylabels.properties

Точкой входа веб-приложения является файл: index.jsp

Содержание:

  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

 <c:set var="theLocale" value="${not empty param.theLocale ? param.theLocale : pageContext.request.locale}" scope="session" />
 <fmt:setLocale value="${theLocale}" />
 <fmt:setBundle basename="multilanguage.mylabels" />

 <!DOCTYPE html>

<html>

<head>
    <title>
        <fmt:message key="label.title" />
    </title>

    <link rel="stylesheet" type="text/css" href="css/index.css">
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/index.js" async></script>
</head>


<body onload="assignDestinationForm()">

    <header class="languages">
        <nav>
            <ul>        
                <li>
                    <a href="index.jsp?theLocale=en_EN">
                        <img src="img/england.jpg" alt="" id="imgEngland">
                    </a>
                </li>       
                <li>
                    <a href="index.jsp?theLocale=de_DE">
                        <img src="img/germany.jpg" alt="" id="imgGermany">
                    </a>
                </li>
                <li>
                    <a href="index.jsp?theLocale=pl_PL">
                        <img src="img/poland.jpg" alt="" id="imgPoland">
                    </a>
                </li>
            </ul>
        </nav>
    </header>

    <div style="clear: both;"></div>

    <header class="title">
        <h1>
            <fmt:message key="label.title" />
        </h1>
    </header>

    <article>
        <section>

        </section>
    </article>

    <div id="container">
        <form id="myForm" action="">
            <button id="btnSignIn">
                <fmt:message key="label.login" />
            </button>
            <button id="btnSignUp">
                <fmt:message key="label.register" />
            </button>
        </form>
    </div>

    <footer>
        <fmt:message key="label.footer" />
    </footer>

</body>

вторая подстраница: login-form.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<c:set var="theLocale" value="${not empty param.theLocale ? param.theLocale : pageContext.request.locale}" scope="session" />
<fmt:setLocale value="${theLocale}" />
<fmt:setBundle basename="multilanguage.mylabels" />

<!DOCTYPE html>

<html>

<head>
    <title>
        <fmt:message key="label.login" />
    </title>

    <link rel="stylesheet" type="text/css" href="css/login-form.css">
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/index.js"></script>
</head>

<body onload="assignDestinationForm()">

    <header class="languages">
        <nav>
            <ul>        
                <li>
                    <a href="login-form.jsp?theLocale=en_EN">
                        <img src="img/england.jpg" id="btnEngland" alt="">
                    </a>
                </li>       
                <li>
                    <a href="login-form.jsp?theLocale=de_DE">
                        <img src="img/germany.jpg" id="btnGermany" alt="">
                    </a>
                </li>
                <li>
                    <a href="login-form.jsp?theLocale=pl_PL">
                        <img src="img/poland.jpg" id="btnPoland" alt="">
                    </a>
                </li>
            </ul>
        </nav>
    </header>

    <article>
        <section>
            <h1>
                <fmt:message key="label.login" />
            </h1>
            <div id="container">
                <form action="" method="get">
                    <fmt:message key="label.username" /> <br />
                    <input type="text" name="userName" id="userName">
                    <br /><br />
                    <fmt:message key="label.password" /> <br />
                    <input type="password" name="password" id="password"> 
                    <br /><br />
                    <button id="btnForm">
                        <fmt:message key="label.btnLogin" />
                    </button>           
                </form>
            </div>
        </section>
    </article>





    <footer>
        <fmt:message key="label.footer" />
    </footer>   

</body>

У меня еще есть страница register-form.jsp, но есть только форма для регистрации и она похожа на login-form.jsp.

Как установить, чтобы после нажатия на изображение с флагом страны назначался заданный язык и после нажатия на ссылку на login-form.jsp был выбран тот же язык?

...