代码之家  ›  专栏  ›  技术社区  ›  bmeulmeester

在JSP页面中动态导入文件

  •  0
  • bmeulmeester  · 技术社区  · 14 年前

    所以我设置了以下内容:

        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>
    

    <c:out value="Test" /> 它起作用了,我看到我的页面上提到了这个测试,当我在其中放入两个值时,一个用于NL,另一个用于其他语言,它也会改变。。

    <%
    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">
    

    还是用另一种方式更方便?

    提前谢谢!

    1 回复  |  直到 14 年前
        1
  •  1
  •   Sean    14 年前

    试着看看 ResourceBundle . 这将允许您编写1个JSP文件,页面上的所有措辞都将在属性文件中控制。这将避免在jsp文件中编写逻辑来控制语言。

    有很多关于如何使用ResourceBundle的教程。这是一个来自 Oracle