リクエストの値に基づいて、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>
だから、chooseLang が 'NL' 属性を見つけることを知っています。タグと タグの間を変更すると <c:out value="Test" />
、ページにテストが記載されていることがわかります。他の言語の場合は、同様に変更されます..
ただし、次のように、Localization.jsp ファイルの 1 つで定義されている文字列を使用しようとすると、実際のエラーが発生します。
<%
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">
それで、私はここで何が欠けていますか?または、これは別の方法でより便利に行われますか?
前もって感謝します!