Я хочу, чтобы моя страница JSP включала другую страницу на основе значения в запросе. Так я установил следующее:Динамический импорт файла на странице 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>
Итак, я знаю, что chosenLang находит атрибут «NL» , потому что, когда я меняю whats между тегами и тегами на , он работает, я вижу, что тест упоминается на моей странице, и когда я добавляю 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">
Итак, что мне здесь не хватает? Или это более удобно по-другому?
Заранее благодарен!
Это домашнее задание? Просто, чтобы быть уверенным, потому что это совершенно неправильный подход для i18n в JSP. – BalusC
согласен еще 9 ... –