我喜欢.NET MVC 3中的Razor模板。是否有类似于Java的东西?
我想寻找一种可以避免使用JSTL标签,而是像这样做的东西:
<c:if test=${bla}>
<span>my html</span>
</c:if>
并且改为
@if(bla)
{
<span>my html</span>
}
我假设一定有类似的东西
我喜欢.NET MVC 3中的Razor模板。是否有类似于Java的东西?
我想寻找一种可以避免使用JSTL标签,而是像这样做的东西:
<c:if test=${bla}>
<span>my html</span>
</c:if>
并且改为
@if(bla)
{
<span>my html</span>
}
我假设一定有类似的东西
我想介绍一下我的工作:Rythm模板引擎,这是一个使用Razor语法的Java超轻量级和超快速的模板引擎。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 Interpolation Mode” 的功能,使您可以像以下方式一样进行轻量级字符串插值:
String result = Rythm.render("hello @who!", "world");
完整功能演示托管在GAE上: http://play-rythm-demo.appspot.com/
更新:20130406
现在有一个Rythm Fiddle网站,您可以使用它来学习Rythm语法。访问http://fiddle.rythmengine.org
更新:20130513
com.greenlaw110.rythm
更改为org.rythmengine
,相应地更改了Maven Group ID。#xxx
或JSP中的${xxx}
。@
符号作为一个切换器,可以切换到宿主语言解析器(在Razor的情况下是VB和C#),识别紧随@
符号后面的元素的完整语法。这使得Razor能够识别传递给引擎的对象名称以及像for循环和条件语句这样的语法结构。请看twirl,它是从Play框架中分离出来的模板引擎。
示例:
@if(items.isEmpty) {
<h1>Nothing to display</h1>
} else {
<h1>@items.size items!</h1>
}
Spring支持多种模板语言:
有关如何与Spring集成的更多阅读材料,请参见此页面。
此外,还有StringTemplate,虽然在官方Spring文档中没有提到,但可以用作Spring模板引擎。
如果您真的想疯狂一下,这里有一个页面,列出了大约一百万个其他模板引擎。
建议尝试查看velocity(http://velocity.apache.org)。
@myTag(...).cache("3mn").raw().assign("myTagResult") ... @myTagResult.escape("html")
。更多信息请查看http://software-lgl.blogspot.com.au/2012/04/playrythm-100-rc1-released.html。 - Gelin Luo