Существует ли JSP-подобный движок веб-шаблонов на основе Java, который может загружать шаблоны страниц из постоянного хранилища?

Я хотел бы предоставить пользователям возможность писать плагины для моего приложения, первоначальный дизайн и реализация включают в себя механизм шаблонов Velocity (VTL), чтобы позволить

  • Безопасность: пользователи не могут вызывать внутренний Java-код (без взлома с помощью отражения)
  • Простой: ограниченный и ограниченный API, я могу написать свой собственный домен для конкретного языка
  • Портативный: я могу хранить шаблоны VTL в JAR, в базе данных или где угодно
  • Разъединено: контекст шаблона и логика / контроллер не связаны с сетью / HTML

Затем с ограничениями VTL (без поддержки библиотек тегов, как в первую очередь) мы рассмотрели Freemarker.

У него есть все преимущества, но мне интересно, насколько это хорошо?

Другие альтернативы - затмение JET, и в настоящий момент я не знаю ничего другого.

Я хотел бы получить решение, которое может иметь поддержку содержимого Java (например, JSP), но которое может быть сохранено в базе данных

Есть ли что-то подобное там? (Кроме JET и плагина для багги JBoss Freemarker)

2 ответа

Решение

Проверьте Thymeleaf.

Я не использовал это.. ДА!

Похоже, разработчик разработал его для устранения недостатков Velocity и FreeMaker.

Я успешно использовал FreeMarker в нескольких проектах.

Чтобы решить ваши проблемы:

  • Обработка шаблона, даже написанного пользователем, безопасна, если в вашей модели не используется небезопасный метод. В общем, модель должна содержать только неизменяемые объекты (например, строки, числа) и их коллекции (например, список, карта) и никоим образом не должна быть связана с уровнем управления вашего приложения MVC.
  • FreeMarker достаточно прост для программистов, но не обязательно для веб-дизайнеров или редакторов.
  • Шаблоны FreeMarker могут храниться где угодно, поскольку загрузчик шаблонов может быть чем угодно. Посмотрите документацию по API.
  • Шаблоны FreeMarker ограничены уровнем представления вашего MVC-приложения, если вы не публикуете какой-либо разумный метод в вашей модели (см. Первый пункт). В отличие от JSP, они совершенно не знают об API сервлетов.

Что касается поддержки содержимого, большинство основных IDE (IntelliJ, Eclipse, возможно, NetBeans) поддерживают синтаксис FreeMarker и должны обеспечивать автозаполнение ключевых слов. Если вам нужен редактор на основе JavaScript для FreeMarker, я не настолько позитивен, поскольку не знаю ни одного.

Удачи!

Другие вопросы по тегам