Я хочу, чтобы моя страница JSP включала другую страницу на основе значения в Запросе.
Поэтому я установил следующее:
request.setAttribute("chosenLang", "NL");
RequestDispatcher dispatcher = request.getRequestDispatcher(address);
dispatcher.forward(request, response);
И когда я попадаю на страницу «адрес», я пытаюсь сделать следующее:
<c:choose>
<c:when test="${chosenLang eq 'NL'}">
<%@include file="/Localization/NL_Localization.jsp" %>
</c:when>
<c:otherwise>
<%@include file="/Localization/EN_Localization.jsp" %>
</c:otherwise>
</c:choose>
Итак, я знаю, что selectedLang находит атрибут 'NL', потому что, когда я изменяю значение между тегами и на <c:out value="Test" />
, оно работает, я вижу, что тест упоминается на моей странице, и когда я помещаю туда 2 значения один для NL, другой для другого языка, он тоже меняется ..
Настоящая ошибка возникает, когда я пытаюсь использовать строку, определенную в одном из файлов Localization.jsp, например:
<%
String welcomeStr="this is defining String variable";
%>
И когда я вызываю эту строку где-то на моей странице, как
<%=welcomeStr%>
моя IDE не предупреждает меня, что что-то не так. Но когда я компилирую и запускаю, я получаю следующую ошибку:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 48 in the jsp file: /index3.jsp
welcomeStr cannot be resolved
45: <li>My courses</li>
46: <li>My messages [1]</li>
47: <li>My details</li>
48: <li> <%=welcomeStr%></li>
49: </ul>
50: </div>
51: <div id="menuHolder">
Итак, что мне здесь не хватает?
Или это по-другому удобнее?
Заранее спасибо!