문제

줄무늬 레이아웃 정의에서 각각에 대해 다음을 가지고 있다고 가정 해보십시오.

<c:foreach items="${foo}" var="bar" >
     <s:layout-component name="whatever" />
</c:foreach>

그런 다음 내가 렌더링 할 때 나는 이런 일을합니다

<s:layout-component name="whatever">
    //Do something with bar
</s:layout-component>

레이아웃에 배치되기 전에 어떤 구성 요소가 렌더링되므로 막대가 null이고 실패합니다. JSP가 구문 분석하기 전에 전체 페이지를 작성할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

답이없고 질문이 상당히 사소한 것처럼 보이면 여기에는 많은 줄무늬 사용자가 있다고 생각하지 않습니다. 그래서 여기에 내 두 센트가 있습니다.

이것은 분명히 범죄 문제입니다. 그만큼 <s:layout-component> 상위 페이지의 페이지/루프 범위에 액세스 할 수 없습니다. 당신이 할 때 JSP/JSTL에 비슷한 문제가 있습니다. <jsp:include> 내부 a <c:forEach>. 루프 변수는 다음에 포함 된 코드 스 니펫에서 접근 할 수 없습니다. <jsp:include>. 그러나 JSP/JSTL에서는 <jsp:param> 따라 <jsp:include>. 나는 줄무늬 문서를 간단히 살펴 보았고 나는 <stripes:param>. 그것이 도움이되는지 확인하십시오. 적어도 여기 JSP/JSTL 기반이 있습니다 SSCCE 아이디어를 얻으려면 :

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>

포함 .jsp

${param.item}<br>

산출:

foo
bar
waa
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top