#java #jsp
Вопрос:
я хотел бы знать, возможно ли, чтобы JSP (букле.jsp) включал себя, когда условие истинно
этот код тронул меня java.lang.Исключение ошибки StackOverflowError
<%
for(Callers ck : calls.get(calls.size()-1)){
pageContext.setAttribute("ck", ck);
System.out.print("Test1 " ck);
if (app.hasChild(ck)== true) {
c = app.childOf(ck);
calls.add(c);
%>
<li><input type="checkbox" id="c<%=i%>" />
<label class="tree_label"for="c<%=i%>">${ck}<></label>
<%i ;%>
<%@include file="/Pclink/boucle.jsp" %>
</li>
<%
}else {
%>
<li><span class="tree_label">${ck}</span></li>
<%
}
}
calls.remove(calls.size()-1);
%>
</ul>*
Ответ №1:
ну , включают в себя статический импорт , который означает, что первое, что случится-это : <%@Include файла=»/Pclink/букле.страницы JSP» %> приносит содержание «Pclink/букле.ОСП » и отнести его в JSP и потому что букле.ССП назвать это селфы так что включать его снова и снова …
Итак, что нам нужно, это автомат inclule который <jsp:include page=»boucle.jsp» /> Примечание: букле.JSP в этом случае должно быть полным страницы JSP не только часть кода, который у хочу, чтобы это быть рекурсивными;
и если вы хотите получить данные из boucle.jsp,все, что вам нужно сделать, — это загрузить данные из исходного jsp с помощью request.setAtrribute(«имя, которое вы хотите использовать», переменная);
и вы поймаете его в boucle.jsp с переменной = request.getAttribute(«имя, которое вы вызвали «);
однако я не слишком хорошо владею английским языком , надеюсь кое-что понять.