Что ж, файл тегов сам по себе не является "классом", как обработчик тегов (я имею в виду, что он, как и все файлы JSP, очевидно, но вы меня поняли).
Когда мне приходится делать «вложенные» теги с файлами тегов, я помещаю данные о состоянии в запрос под «хорошо известным именем». Эффективный общий «секрет» между двумя тегами.
Например, в одном файле тега я мог бы сделать:
<%
jspContext.setAttribute("_myWellKnownName", new java.util.LinkedHashMap(), PageContext.REQUEST_SCOPE);
%>
Затем в последующем файле тегов:
<%
java.util.LinkedHashMap map = (java.util.LinkedHashMap) jspContext.findAttribute("_myWellKnownName");
%>
Затем я манипулирую этой переменной все, что хочу.
В родительском теге исполняется код дочерних тегов, поэтому после того, как моя карта (в данном случае) заполнена, и я могу делать с ней все, что мне нужно сделать в этот момент.
Основной шаблон, который я нахожу, состоит в том, чтобы собрать результаты дочерних тегов во что-то вроде списка, а затем родительский элемент передает фактические данные на страницу после того, как дети выполнили всю свою работу.
У меня не было необходимости в моих тегах, где у меня есть родители, вложенные в других родителей (то есть, когда один тег будет конфликтовать с состоянием другого), хотя, очевидно, это может быть проблемой с этим методом в общем смысле. Тем не менее, все еще эффективен для моих целей.