Ответ 1
- http://www.jangod.org/ (теперь также https://github.com/HubSpot/jinjava)
- запустить django через jython на jvm
- использовать http://mustache.github.com/
Я ищу механизм шаблонов для Java с синтаксисом, например, в шаблонах Django или Twig (PHP). Он существует?
Обновление: Цель состоит в том, чтобы иметь одинаковые файлы шаблонов для разных языков.
<html>
{{head}}
{{ var|escape }}
{{body}}
</html>
может быть отображен из кода python (Django), а также из PHP с помощью Twig. Я ищу решение Java.
Любая другая система шаблонов, доступная в Java, PHP и python, подходит.
Я разработал Jtwig. Вы можете попробовать. Он используется в некоторых проектах с успехом. Он легко настраивается с хорошей интеграцией с spring webmvc.
Просто включите зависимость, используя maven или аналогичную систему.
<dependency>
<groupId>com.lyncode</groupId>
<artifactId>jtwig-spring</artifactId>
<version>2.0.3</version>
</dependency>
И сконфигурируйте распознаватель изображений bean, чтобы вернуть Jtwig.
@Bean
public ViewResolver viewResolver() {
JtwigViewResolver viewResolver = new JtwigViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".twig");
return viewResolver;
}
Или, если вы используете базовые конфигурации xml:
<bean id="viewResolver" class="com.lyncode.jtwig.mvc.JtwigViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".twig"/>
</bean>
Если вам нужны одинаковые шаблоны для разных языков, вы можете взглянуть на Clearsilver.
Clearsilver - это движок шаблонов, нейтральный для языков, который помогает разделить презентацию от кода, вставив безрисковый иерархический формат данных (HDF) между вашим кодом и шаблонами. Подумайте о HDF, как XML, но гораздо проще.
Он используется для многих сайтов с высоким трафиком, включая Yahoo! Группы, Gmail Static HTML, orkut.com, wunderground.com и другие. Языки реализации, используемые с ним, включают C/С++, Python, Java, Ruby, PHP, С# и другие. Рамка Python также включает диспетчер страниц и простой ORM, который немного похож на Ruby-On-Rails, так как он делает сопоставление между таблицами базы данных, HDF и шаблонами, принимает очень мало кода.
Основная реализация Clearsilver - это C с языковыми оболочками. Существует также 100% -ная реализация Java, сделанная Google и открытая под названием JSilver.
Конечно, для Java существуют всевозможные движки шаблонов. Я использовал FreeMarker, Velocity и StringTemplate. Я не уверен, что вы подразумеваете под синтаксисом, подобным Django; каждый двигатель имеет свои собственные вариации на основе шаблонов.
Для сравнения некоторых разных двигателей проверьте здесь.
Вы можете использовать Mustache.java и Handlebars.java. Усы очень минималистичны. Ручки похожи и совместимы с Mustache, но вы можете очень легко писать свои собственные расширения.