有没有类似于Razor的模板语言用于Java Spring Web应用程序?
我爱上了 .NET MVC 3 中的剃须刀模板。Java有什么接近的东西吗?
我会寻找一些可以避免使用JSTL标签的东西,而是做这样的事情:
<c:if test=${bla}>
<span>my html</span>
</c:if>
而是做
@if(bla)
{
<span>my html</span>
}
我假设一定有类似的
我爱上了 .NET MVC 3 中的剃须刀模板。Java有什么接近的东西吗?
我会寻找一些可以避免使用JSTL标签的东西,而是做这样的事情:
<c:if test=${bla}>
<span>my html</span>
</c:if>
而是做
@if(bla)
{
<span>my html</span>
}
我假设一定有类似的
我想介绍一下我的工作:Rythm模板引擎,一个轻量级和超快速的Java模板引擎,使用Razor般的语法。Rythm具有丰富的功能,并支持页面布局/继承,自定义标签(在模板或java类中),在开发模式下动态重新加载等等。基准测试显示Rythm比正常页面上的Velocity快2到3倍!
API 很简单:
使用内联字符串渲染:
String output = Rythm.render("@args String who;hello @who!", "world");
使用模板文件渲染:
String output = Rythm.render("hello.txt", "world");
Rythm简介:http://software-lgl.blogspot.com.au/2012/03/rythm-easy-to-use-high-performance-java.html
更新20120701
最新版本引入了一项名为“字符串插值模式”的功能,该功能使您能够执行非常轻量级的字符串插值,如下所示:
String result = Rythm.render("hello @who!", "world");
在 GAE 上托管了完整的功能演示:http://play-rhythm-demo.appspot.com/
更新20130406
节奏小提琴网站现已上线,您可以使用它来学习Rythm语法。查看 http://fiddle.rythmengine.org
更新20130513
com.greenlaw110.rythm
org.rythmengine
据我所知,在那个Java世界中,没有一个看起来和行为都像Razor。
据我所知,Razor中的模板引擎不仅解析静态文本中的“占位符”,例如在Velocity或JSP中。#xxx
${xxx}
相反,Razor 中的符号充当切换到宿主语言分析器(Razor 中的 VB 和 C#)的切换开关,识别紧跟在符号后面的元素的完整语法。这允许 Razor 识别传递给引擎的对象的名称以及语法结构,如 for 循环和条件。@
@
这为 te Razor 模板打开了托管语言的全部功能,这在坏人手中可能是一件危险的事情......
世界上Java端的大多数模板引擎都认真地选择将业务逻辑与模板问题严格分开,因此对其模板“语言”中的循环或条件等动态功能的支持非常有限或根本没有支持,选择声明性样式而不是动态。