在jsp中传递多个参数

时间:2012-04-04 16:14:39

标签: jsp jstl

我想从我的一个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>

任何人都可以帮我解决我失踪的问题吗?

1 个答案:

答案 0 :(得分:0)

您正在混合oldschool scriptlet 和现代EL。它们不共享相同的变量范围。您在 scriptlet 范围内创建了map,但是您试图在${map} null中传递EL范围内的request.setAttribute("map", map);

scriptlet (或者最好是前端控制器servlet)将它放在EL所期望的正确范围内。 E.g。

{{1}}