JSPページにファイルを動的にインポートします
-
30-09-2019 - |
質問
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」属性を見つけることを知っています。 <c:out value="Test" />
それは動作します、私は私のページでテストが言及されているのを見ます、そして、私がそこに2つの値をそこに置くと、1つはNL用、もう1つは他の言語用に、それは同じように変わります。
ただし、実際のエラーは、locialization.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">
それで、私はここで何が欠けていますか?それとも、これは別の方法でより便利ですか?
前もって感謝します!
解決
見てみてください ResourceBundle. 。これにより、1 JSPファイルを作成することができます。ページ上のすべての文言は、プロパティファイルで制御されます。これにより、言語を制御するためにJSPファイルにロジックを記述する必要がなくなります。
JSPページはプロパティファイルから読み取ることができ、それぞれに異なる言語/国の文言があります。
ResourceBundleの使用方法に関するチュートリアルがたくさんあります。これがからです オラクル
所属していません StackOverflow