Нет фильтра, делающего это.У нас есть своя собственная шаблонная логика, которая использует так называемый синтаксический анализатор рекурсивного спуска.
Это фактически нетривиальная задача для выполнения такого анализа аннотаций.Что мы делаем в первую очередь - это используем HTML-код в виде DOM-подобного дерева с помощью Jsoup.Jsoup заботится о нормализации HTML в XML-подобную структуру (хотя не совсем).
Затем мы спускаемся по этому дереву и строим параллельное дерево «Renderers» как объекты Java.Каждый рендерер имеет возможность делать что-то конкретное, например, выдавать HTML, показывать, если значение равно true и т. Д. Учитывая, что дерево рендеринга соответствует дереву HTML, если ShowIf возвращает false, мы также исключаем всю ветвь под ним.
Есть несколько более сложных вещей для встраивания страниц и так далее, но это суть этого.Спасибо за добрые слова!
Данджи, создатель Sitebricks & Guice Servlet.