哪种 Java HTML 模板技术的工作方式最接近 Ruby (erb/haml)?
Posted
技术标签:
【中文标题】哪种 Java HTML 模板技术的工作方式最接近 Ruby (erb/haml)?【英文标题】:Which Java HTML templating technology works in a way that is closest to Ruby (erb/haml)? 【发布时间】:2010-10-23 10:17:48 【问题描述】:在 Java templating solutions 中,例如 Apache Velocity、Freemarker、Hamlets、Tapestry、StringTemplate、JSP、JSP Weaver(其他?),它们最接近 Ruby 中类似 html 模板解决方案的简洁性和简单性 - haml/erb .我关心模板引擎的语法以及它与服务器上的控制器代码集成的简单程度。
【问题讨论】:
【参考方案1】:Java 比 Ruby 更不赞成混合代码和数据的做法。推荐的 Java 实践是使用标记库而不是代码块。我提到这一点只是因为如果您以与典型 Ruby 模板相同的方式编写 Java 模板,其他 Java 开发人员(我假设您在一个团队中工作)可能会抱怨。
所以现在回答您的问题.....标准 JSP 连同 JSTL 和 EL 确实不是一个糟糕的解决方案。但为了更加简洁,请查看 GSP,Grails 使用的模板解决方案。您可以在任何 Java webapp 中使用 GSP,即您不需要使用 Groovy/Grails。
【讨论】:
【参考方案2】:...如果您想使用Quercus,您甚至可以使用 php。然后,您可以像 JSP、Velocity 等一样将它们用作“视图”,使用 spring 或 struts 等来处理控制器。
我们不久前做的一个项目是使用 JSP、struts 和 spring。它们都很好地集成在一起,我们可以按照描述的方式进行操作。
大多数渲染/模板引擎都有不同的语法。 Java 的优点(和野兽)在于您可以选择您觉得更舒服的语法并将其与您选择的控制器/容器一起使用。
【讨论】:
【参考方案3】:我想你要说的是这个
红宝石
<% foreach vars do |var| %>
<!-- some html code to do -->
<%=h var %>
<% end %>
java
<% for( int i = 0; i < vars.length; i++ ) %>
<%=vars[i]%>
<% %>
所以标签是相似的
对于控制器的 java 端,视图 spring 提供了一种很好地分离它们的方法
【讨论】:
或<% for( Object var : vars ) %
;)以上是关于哪种 Java HTML 模板技术的工作方式最接近 Ruby (erb/haml)?的主要内容,如果未能解决你的问题,请参考以下文章