看到沒有任何答案和問題看起來相當微不足道,我不認爲這裏有很多Stripes用戶。所以這裏是我的兩分錢:
這絕對是一個範圍問題。 <s:layout-component>
無權訪問父頁面的頁面/循環範圍。當您在<c:forEach>
中執行<jsp:include>
時,JSP/JSTL中存在類似的問題。在<jsp:include>
包含的代碼片段中,循環變量不可訪問。但是在JSP/JSTL中可以通過沿着<jsp:include>
傳遞<jsp:param>
來解決。我快速瀏覽了Stripes文檔,並發現了一個<stripes:param>
。看看是否有幫助。至少在這裏是一個基於SSCCE拿到想法JSP/JSTL:
main.jsp中
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
// Just for demo purposes. Do NOT use scriptlets in real work.
request.setAttribute("items", java.util.Arrays.asList("foo", "bar", "waa"));
%>
<c:forEach items="${items}" var="item">
<jsp:include page="include.jsp">
<jsp:param name="item" value="${item}" />
</jsp:include>
</c:forEach>
include.jsp
${param.item}<br>
輸出:
foo
bar
waa
這是一個很好的刺當然,但這裏的問題是,當我調用佈局時,該項目還不存在,所以我無法將它作爲參數傳遞。 感謝您的支持。 我打算讓這個問題沒有特定的條紋,因爲它只是一個範圍問題,但我想不出一個什麼時候可以用jsp:includes做同樣的事情。 我懷疑這是不可能的,但如果任何人沒有在沒有首先評估頁面上的表達式的情況下包含jsp的方式,請告訴我們。 – 2009-11-23 12:26:11