Какие механизмы защищенных шаблонов в Java? - PullRequest
5 голосов
/ 23 мая 2011

Я ищу шаблонизатор в Java, который запрещает выполнение кода в шаблоне, только теги.

В идеальном мире я бы искал эквивалент Jinja2 (или шаблонизатор Django ). Основанный на Django, теги шаблона будут использоваться при создании мной, но пользователь не может создать тег шаблона (путем выполнения кода).

Я бы реализовал это в Play! Framework .

Спасибо за вашу помощь!

Ответы [ 3 ]

5 голосов
/ 23 мая 2011

StringTemplate - это то, что вы ищете.

Его отличительной особенностью является то, что он строго обеспечивает разделение вида модели в отличие от других двигателей.Строгое разделение делает сайты и генераторы кода более гибкими и удобными в обслуживании; также обеспечивает превосходную защиту от вредоносных авторов шаблонов

1 голос
/ 28 октября 2011

Если вы хотите предоставить простой способ изменения их шаблонов без особого изучения сотен пользовательских тегов и достижения четко определенной функциональности, к которой следует обращаться, и при этом свободно предлагать ее, вам следует подумать о пассивных шаблонах.Это гарантирует, что вредоносный код не может быть добавлен :) Сильный движок с пассивными шаблонами в java - Snippetory .Однако, если вы хотите контролировать доступ, контроль доступа также может быть хорошей идеей.

1 голос
/ 12 июля 2011

Исходя из ваших требований, все выглядит так, как будто все, что вам требуется, это механизм шаблонов, который не допускает ничего похожего на скриптлеты JSP (между <% и%>) и базируется только на тегах и / или атрибутах ...

Если это так, я хотел бы предложить вам Thymeleaf http://www.thymeleaf.org (здесь сравнение с JSP ), автором которого я являюсь. Но если я не ошибаюсь, это требования, которые также могут быть выполнены Velocity http://velocity.apache.org,, так что выбор за вами!

...