哪种Java HTML模板技术以最接近Ruby(erb / haml)的方式工作?

时间:2009-05-03 08:37:41

标签: java haml velocity freemarker stringtemplate

在Java templating solutions中,例如Apache Velocity,Freemarker,Hamlets,Tapestry,StringTemplate,JSP,JSP Weaver(其他?),它们最接近Ruby中类似HTML模板解决方案的简洁性和简洁性 - haml / ERB。我既关注模板引擎的语法,又关注它与服务器上的Controller代码的简单集成。

3 个答案:

答案 0 :(得分:2)

混合代码和数据的做法在Java中比在Ruby中更令人不悦。推荐的Java实践是使用taglib而不是代码块。我之所以提到这一点,只是因为如果你以与典型Ruby模板相同的方式编写Java模板,那么其他Java开发人员(我假设你在团队中工作)可能会抱怨。

现在回答你的问题......标准的JSP与JSTL和EL一起真的不是一个糟糕的解决方案。但为了更加简洁,请查看GSP,这是Grails使用的模板解决方案。您可以在任何Java Web应用程序中使用GSP,即您不需要使用Groovy / Grails。

答案 1 :(得分:0)

我认为你得到的是这个

红宝石

<% foreach vars do |var| %>
  <!-- some html code to do -->
  <%=h var %>
<% end %>

的java

<% for( int i = 0; i < vars.length; i++ ) { %>

   <%=vars[i]%>
<% }  %>

所以标签类似

对于控制器的java端,views spring提供了一种很好地分离它们的方法

答案 2 :(得分:-1)

...如果您想使用Quercus,甚至可以使用PHP。然后你可以像JSP,Velocity等一样使用它们作为'view'和spring或struts等来处理Controller。

我们之前做过的一个项目是JSP和struts,以及spring。它们都很好地集成在一起,我们可以完成所描述的内容。

大多数渲染/模板引擎都有不同的语法。 Java的beuty(和beast)是你可以选择你觉得更舒服的语法,并将它与你选择的控制器/容器一起使用。