Я использую тег дерева для одного из моих проектов практики, где я бы отображал содержимое каталога в виде дерева (рекурсивно). Я выполнил аналогичное требование как пользовательский тег в Java в течение пред-JSP2.0 дней. Обработка каталога требует рекурсии (для обработки подкаталогов)! Можно ли закодировать это как файлы тегов и можно ли их использовать рекурсивным образом?JSP Tag Recursion
9
A
ответ
11
Вот пример рекурсивного файла тега, который отображает от узла все это дети recursivly (используется для создания YUI treeview):
/WEB-INF/tags/nodeTree.tag:
<%@tag description="display the whole nodeTree" pageEncoding="UTF-8"%>
<%@attribute name="node" type="com.myapp.Node" required="true" %>
<%@taglib prefix="template" tagdir="/WEB-INF/tags" %>
<li>${node.name}
<c:if test="${fn:length(node.childs) > 0}">
<ul>
<c:forEach var="child" items="${node.childs}">
<template:nodeTree node="${child}"/>
</c:forEach>
</ul>
</c:if>
</li>
Это может быть использован в обычном файле JSP, как это:
<div id="treeDiv1">
<ul>
<c:forEach var="child" items="${actionBean.rootNode.childs}">
<template:nodeTree node="${child}"/>
</c:forEach>
</ul>
</div>
хитрость в том числе собственного TagLib тега работает для файлов теги, но я не смогли использовать это в классе обработчика тега. Связанный вопрос: http://stackoverflow.com/questions/2326981/jsp-custom-taglib-nested-evaluation – David 2014-12-01 17:53:19