Как выполнить рекурсивный цикл ( цикл по каждому элементу ) с помощью тега include ? Древовидная структура-JAVA

#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(«имя, которое вы вызвали «);

однако я не слишком хорошо владею английским языком , надеюсь кое-что понять.