Кажется, что нет декларативного / TLD способа сделать это.
JSP 2.0 позволяет реализовать переводчик времени перевода, расширив класс javax.servlet.jsp.tagext.TagLibraryValidator и реализовав сообщение проверки.
Вы также можете сделать это во время выполнения с помощью метода SimpleTag.getParent () и вызвать исключение, если родительский тип имеет неправильный тип.
Это может выглядеть примерно так:
public void doTag() {
if (!(getParent() instanceof Filters))
throw new Exception("A filter can only be used inside a filters tag.");
}