我希望我的 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">
那么,我在这里缺少什么?还是以另一种方式更方便?
提前致谢!