我正在寻找Java的模板引擎,其语法类似于Django模板或Twig(PHP)。它存在吗?
更新: 目标是为不同语言提供相同的模板文件。
<html>
{{head}}
{{ var|escape }}
{{body}}
</html>
可以使用Twig从python(Django)代码以及PHP中呈现。我正在寻找Java解决方案。
Java,PHP和python中提供的任何其他模板系统都是合适的。
答案 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实现。
答案 3 :(得分:0)
当然,Java有各种各样的模板引擎。我使用过FreeMarker,Velocity和StringTemplate。我不确定你的Django语法是什么意思;每个引擎都有自己的模板方法变体。
要比较一些不同的引擎,请查看here。
答案 4 :(得分:0)
您可以使用Mustache.java和Handlebars.java。小胡子非常简约。把手与Mustache类似且兼容,但您可以非常轻松地编写自己的扩展程序。