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

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

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

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

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 03 декабря 2011

Проверьте Thymeleaf .

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

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

1 голос
/ 12 мая 2011

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

Для решения ваших проблем:

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

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

Удачи!

...