Существует ли 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, я не настолько позитивен, поскольку не знаю ни одного.
Удачи!