Я пытаюсь включить страницу в JSP с out.println() внутри <% ... %>, но это не удается.

Я должен использовать <% ... %> из-за некоторых ограничений, таких как зацикливание. Есть ли у кого-нибудь идеи о том или ином способе преуспеть во включении страниц? Я указываю на свой примерный случай, как показано ниже.

<%

 for (int i = 1; i < strVoCardList.length; i++) {

  String strUserID = strVoCardList[i][1];


  out.println("<jsp:include page='../include/include_Notification_Bar.jsp' >");

  out.println("<jsp:param name = 'strUserID' value = \""+strUserID+"'/>");

  out.println("<jsp:param name = 'strSubElementID' value = '"+i+3+"'/>");

  out.println("</jsp:include>");

 }

%>
0
Dean Division 8 Янв 2013 в 03:49
Вы можете использовать JSTL? Если да, то вы можете использовать тег . Во-первых, вы должны создать переменную с областью действия из переменной сценария. Спросите нас, если вам нужна помощь.
 – 
rickz
8 Янв 2013 в 04:54

1 ответ

Лучший ответ

Я настоятельно рекомендую вам отказаться от этих скриптлетов и тегов JSP и использовать вместо них теги JSTL <c:forEach> и <c:import>.

Это будет выглядеть так:

<c:forEach items="${strVoCardList}" var="strVoCard" varStatus="status">
    <c:import url="../include/include_Notification_Bar.jsp">
        <c:param name="strUserID" value="${strVoCard[1]}"/>
        <c:param name="strSubElementID" value="${status.count + 3}"/>
    </c:import>
</c:forEach>

Смотрите также:

1
Community 23 Май 2017 в 15:12
Теперь это работает Taglib. Однако сейчас мне сложно изменить исходный код как Taglib, потому что это сильно влияет. После ознакомления с концепцией включения среди <% @ include file ...>, и pageContext.include (...). Это решается pageContext.include ("../ include / include_Notification_Bar.jsp? StrUserID =" + strUserID + "& strSubElementID =" + (i + 3));
 – 
Dean Division
8 Янв 2013 в 16:38