0

我想将两个参数从我的一个 jsp 页面传递到另一个包含的 jsp 页面。

第一个 JSP 代码:

 <%
        java.util.Map map = new java.util.LinkedHashMap();
        map.put("Manage Client", "${pageContext.request.contextPath}/clients/");
     %>
     <s:message var="message" code="label.NavigationBar.add"></s:message>
        <jsp:include page="/includes/_navigation_top.jsp" >
            <jsp:param name="topLeftNav" value="${message}"/>
            <jsp:param name="parentNode" value="${map}"/>
        </jsp:include>

包含的 jsp (/includes/_navigation_top.jsp) 页面代码是

<c:if test="${ param.topLeftNav ne 'Quotes' }">
        <div class="third-nav">
           <div class="bread-crum">
               <ul >
                <li><a href="${applicationScope.app_url_secure}/">Home</a></li>
                <c:if test="${param.parentNode!=null }">
                    <c:forEach items="${param.parentNode}" var="map">
                        <li><a href="${map.value}">${map.key}</a></li>
                    </c:forEach>
                </c:if>
                <li>${param.topLeftNav}</li>
              </ul>
          </div>
        </div>
    </c:if>

任何人都可以帮我解决我想念的地方吗?

4

1 回答 1

0

您正在混合 oldschool scriptlet和现代EL。它们不共享相同的变量范围。您创建了mapin scriptlet范围,但您试图在 EL 范围内传递一个${map}显然是null.

scriptlet(或者最好是前端控制器servlet)按照 EL 的预期将其置于正确的范围内。例如

request.setAttribute("map", map);
于 2012-04-04T16:16:39.317 回答