用于Java的Django式模板系统?

时间:2010-06-07 15:31:14

标签: java templates django-templates

我正在寻找Java的模板引擎,其语法类似于Django模板或Twig(PHP)。它存在吗?

更新: 目标是为不同语言提供相同的模板文件。

<html>
{{head}}
{{ var|escape }}
{{body}}
</html>

可以使用Twig从python(Django)代码以及PHP中呈现。我正在寻找Java解决方案。

Java,PHP和python中提供的任何其他模板系统都是合适的。

5 个答案:

答案 0 :(得分:22)

我开发了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>

答案 1 :(得分:13)

答案 2 :(得分:1)

如果您需要不同语言的相同模板,可以查看Clearsilver。

Clearsilver是一种与语言无关的模板引擎,它通过在代码和模板之间插入与语言无关的分层数据格式(HDF)来帮助将表示与代码分开。将HDF视为XML,但更简单。

它被用于许多高流量网站,包括Yahoo!群组,Gmail静态HTML,orkut.com,wunderground.com等。与它一起使用的实现语言包括C / C ++,Python,Java,Ruby,PHP,C#等。 Python框架还包括一个Page-Class调度程序和简单的ORM,它有点像Ruby-On-Rails,因为它使得数据库表,HDF和模板之间的映射只占用很少的代码。

主要的Clearsilver实现是在C语言中使用特定于语言的包装器。谷歌和开放源代码的JSilver也有100%的java实现。

http://www.clearsilver.net/

http://code.google.com/p/jsilver/

答案 3 :(得分:0)

当然,Java有各种各样的模板引擎。我使用过FreeMarker,Velocity和StringTemplate。我不确定你的Django语法是什么意思;每个引擎都有自己的模板方法变体。

要比较一些不同的引擎,请查看here

答案 4 :(得分:0)

您可以使用Mustache.javaHandlebars.java。小胡子非常简约。把手与Mustache类似且兼容,但您可以非常轻松地编写自己的扩展程序。