Какие фреймворки/механизмы шаблонов Java позволяют использовать удаленные шаблоны?

У меня средний опыт программирования на Java и довольно большой опыт программирования веб-приложений на других языках. В настоящее время я изучаю некоторые веб-фреймворки Java (Spring MVC, Struts).

Там, где я работаю, у нас есть ряд отдельных веб-приложений Java, развернутых в разных контекстах и ​​как отдельные войны. Некоторые из самых старых — это сервлеты, многие — Struts 1, а новые — Spring 3.

Большинство существующих приложений имеют непоследовательный или несогласованный брендинг (графика/декорация), и одна из вещей, которую я изучаю, — это применение согласованного верхнего и нижнего колонтитула на нескольких сайтах, которые мы можем хранить в одном месте. В идеале он даже не должен находиться на том же сервере, что и веб-приложения. Чтобы было ясно: где бы я ни настраивал свой шаблон, я хочу иметь возможность настраивать http://some.other.server/template вместо WEB-INF/template.

Я хотел бы использовать SiteMesh или что-то подобное с таким же "декоративным" подходом, но я исследовал его, и, по-видимому, единственный способ, которым это было сделано в SiteMesh 2, был сделан кем-то, кто разветвил код и настроил его. чтобы разрешить импорт удаленных шаблонов. (Я нашел эту информацию в группе Sitemesh3 Google.)

Я только начинаю разрабатывать это решение, поэтому полагаю, что мы могли бы использовать что-то вроде Velocity, Freemarker, Tiles. Однако там, где я работаю, мы медленно обновляем старые приложения и консервативны в принятии новых технологий, поэтому мне нужно доказать, что решение имеет хорошую поддержку сообщества, работает со Struts 1 и Spring 3 MVC и является достаточно надежным и стабильным.


person k-den    schedule 30.03.2012    source источник
comment
Я нашел этот ответ SiteMesh: stackoverflow.com/questions/2885229/ Возможно, это решение, которое мы могли бы использовать, оно, по-видимому, ограничено только тем, что веб-приложение должно находиться на том же сервере, что и веб-приложение с украшениями. .   -  person k-den    schedule 30.03.2012
comment
Поскольку я новичок, было бы очень полезно узнать, почему за это проголосовали. Я провел некоторое исследование и убедился, что перед публикацией не было очень похожих вопросов. Спасибо.   -  person k-den    schedule 31.03.2012
comment
Мне нравится, что Velocity настолько настраиваемый, однако после разговора с создателем в списке рассылки SiteMesh 2 он смог дать мне еще несколько советов, как заставить его работать во время войн на одном сервере. Этого, вероятно, будет достаточно для наших нужд.   -  person k-den    schedule 02.04.2012


Ответы (1)


В Velocity есть концепция «загрузчика ресурсов», то есть интерфейс для поиска файлов шаблонов, которые можно настроить. Уже существует загрузчик для ресурсов на основе URL. См. документацию по скорости для загрузчиков ресурсов. Он также имеет базовую поддержку кэширования.

Если вам нужно что-то более сложное, также должно быть довольно легко предоставить собственную реализацию загрузчика ресурсов, я сделал это для одного из своих проектов, и он отлично работает.

person centic    schedule 30.03.2012