Встроенный пользовательский тег в динамическое содержимое (вложенный тег) не отображается.
У меня есть страница, которая извлекает динамический контент из javabean и передает список объектов в пользовательский тег для обработки в html. В каждом объекте есть набор html для вывода, который содержит второй пользовательский тег, который я также хотел бы визуализировать. Проблема в том, что вызов тега отображается в виде открытого текста.
Пример может послужить мне лучше.
1 Извлечь информацию из базы данных и вернуть ее на страницу через javabean. Отправьте эту информацию в пользовательский тег для вывода.
<jsp:useBean id="ImportantNoticeBean" scope="page" class="com.mysite.beans.ImportantNoticeProcessBean"/> <%-- Declare the bean --%>
<c:forEach var="noticeBean" items="${ImportantNoticeBean.importantNotices}"> <%-- Get the info --%>
<mysite:notice importantNotice="${noticeBean}"/> <%-- give it to the tag for processing --%>
</c:forEach>
этот тег должен выводить поле div примерно так
*SNIP* class for custom tag def and method setup etc
out.println("<div class=\"importantNotice\">");
out.println(" " + importantNotice.getMessage());
out.println(" <div class=\"importantnoticedates\">Posted: " + importantNotice.getDateFrom() + " End: " + importantNotice.getDateTo()</div>");
out.println(" <div class=\"noticeAuthor\">- " + importantNotice.getAuthor() + "</div>");
out.println("</div>");
*SNIP*
Это хорошо и как ожидалось
<div class="importantNotice">
<p>This is a very important message. Everyone should pay attenton to it.</p>
<div class="importantnoticedates">Posted: 2008-09-08 End: 2008-09-08</div>
<div class="noticeAuthor">- The author</div>
</div>
2 Если, например, в приведенном выше примере у меня должен был быть собственный тег в строке ImportantNotice.getMessage ():
*SNIP* "This is a very important message. Everyone should pay attenton to it. <mysite:quote author="Some Guy">Quote this</mysite:quote>" *SNIP*
Важное уведомление отображается нормально, но тег цитаты не будет обрабатываться, просто вставляться в строку и помещаться как тег text / html.
<div class="importantNotice">
<p>This is a very important message. Everyone should pay attenton to it. <mysite:quote author="Some Guy">Quote this</mysite:quote></p>
<div class="importantnoticedates">Posted: 2008-09-08 End: 2008-09-08</div>
<div class="noticeAuthor">- The author</div>
</div>
Вместо
<div class="importantNotice">
<p>This is a very important message. Everyone should pay attenton to it. <div class="quote">Quote this <span class="authorofquote">Some Guy</span></div></p> // or wahtever I choose as the output
<div class="importantnoticedates">Posted: 2008-09-08 End: 2008-09-08</div>
<div class="noticeAuthor">- The author</div>
</div>
Я знаю, что это связано с процессорами и препроцессорами, но я не уверен, как заставить это работать.