`
lifethinker
  • 浏览: 72069 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对Groovy的SimpleTemplateEngine的一点改进

    博客分类:
  • java
阅读更多
Groovy的SimpleTemplateEngine使得我们很容易用Groovy作为一个模板语言,也可以用它来代替Velocity, Freemarker。SimpleTemplateEngine采用和JSP类似的语法,即<%= %>中可以嵌入groovy表达式,<% %>中可以嵌入groovy代码,其它部分都是普通文本,在普通文本也可以使用${...},就像在双引号字符串中可以使用${...}一样。但我认为SimpleTemplateEngine有一些限制,来看下面的例子:
<%def list = [ "item1", "item2", "item3" ]%>
<% for (item in list) { %>
  o $item
<% } %>

输出:

  o item1

  o item2

  o item3

注意每个item之间都有一个空白行,这是由于<%for ...%>后面的换行所导致。实际上item1前面也有两个空白行,这是由于<%def ...%>和<%for ...%>后面的两个换行符所导致。多余的空白一般不会造成什么问题,比如XML和HTML中的空白一般就不会有什么问题,但是如果我们想要用groovy模板来生成email,这样就会有问题了,我们需要能够更加精细的控制输出的内容。对于上面的例子,如果我们不想要item之间的空白行,我们可以将所有语句放在同一行,但这样会使得groovy模板很难维护。

对于该问题,我的解决方法是在SimpleTemplateEngine的基础上添加一个新的语法,<%- %>,它与<% %>相同,只是它不会输出前面的空白和尾部的空白和换行符。
<%-
def list = [ "item1", "item2", "item3" ]
%>
  <%- for (item in list) { %>
  o $item
  <%- } %>

输出:
  o item1
  o item2
  o item3

这样item之间和item1之前都不会有空白行。

附件是Template引擎的代码。
分享到:
评论

相关推荐

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...

    groovy-2.3.6-installer

    Groovy 2.3.6是该语言的一个稳定版本,发布于2014年,它提供了许多改进和新特性。对于开发者来说,选择特定版本可能是因为它满足了项目需求或与已有的系统兼容。Groovy 2.3系列引入了类型推断,使得代码更加可读和...

    热切推荐对groovy感兴趣看这位老兄的blog

    对于对Groovy感兴趣的人来说,深入理解这位博主的文章可以极大地提升对Groovy的理解和应用水平。 这篇名为"热切推荐对groovy感兴趣看这位老兄的blog"的文章,虽然描述部分为空,但从标题可以看出,它可能是博主分享...

    Java调用Groovy,实时动态加载数据库groovy脚本

    - **测试与隔离**:Groovy脚本可以作为独立的模块进行测试,避免了对Java代码的影响。 总的来说,Java调用Groovy并实时加载数据库中的Groovy脚本是一种强大而灵活的解决方案,特别适用于需要频繁调整业务逻辑或进行...

    groovy入门经典,groovyeclipse 插件

    它为Eclipse IDE带来了对Groovy语言的全面支持,包括语法高亮、代码提示、自动完成、调试器和构建工具。通过GroovyEclipse,开发者可以在Eclipse环境中舒适地编写、测试和运行Groovy代码,提高开发效率。 入门...

    groovy脚本实现对数据库的增删改查

    在“groovy脚本实现对数据库的增删改查”这个主题中,我们将深入探讨如何使用Groovy来执行常见的数据库操作。首先,我们需要连接到数据库。在Groovy中,我们可以利用JDBC(Java Database Connectivity)API来实现这...

    apache-groovy-sdk-4.0.1下载

    在4.0.1这个版本中,可能包含了对先前版本的一些改进和bug修复,以提升稳定性和性能。对于开发者而言,更新到最新版本的SDK有助于利用最新的特性和优化,提高开发效率。 总之,Apache Groovy SDK 4.0.1是一个完整的...

    groovy-all

    版本号“2.4.7”表明这是Groovy 2.4系列的一个稳定版本,发布于2016年,该版本可能包含了自2.4.0以来的一系列改进和修复。 描述中的省略号可能是由于信息不完整,但在实际的Groovy-all-2.4.7.jar文件中,我们可以...

    groovy in action 中文版 2017.11

    文档最后对Groovy语言进行了整体的概述,强调了Groovy是一种强大、高效且富有表达力的编程语言,适合多种不同的开发场景和开发人员群体,从简单的脚本任务到复杂的系统开发,Groovy都能够胜任。文档还提供了一些基本...

    Groovy Script 入门

    ### Groovy Script 入门知识点详解 #### 一、Groovy脚本简介 Groovy是一种灵活的面向对象的编程语言,它运行在Java平台上。由于其语法简洁且与Java高度兼容,因此对于Java开发者来说非常容易上手。Groovy不仅支持...

    groovy和Java相互调用1

    描述中提到的Groovy调用Java的过程是“无缝”的,这意味着Groovy对Java API的集成非常紧密,使得开发者可以自然地在Groovy中使用Java的功能。 Java调用Groovy类则稍微复杂一些,通常有两种主要方法: 1. **方法1:...

    groovy-all-2.4.8.jar

    这个版本(2.4.8)是Groovy在2.x系列中的一个稳定发行版,提供了一系列的功能和性能改进。 1. **Groovy简介** - Groovy是一种基于Java虚拟机(JVM)的编程语言,它与Java高度兼容,可以直接调用Java库。 - 它引入...

    Groovy入门教程[参照].pdf

    Groovy 入门教程 Groovy 是一种基于 Java 语言的脚本语言,运行在 JVM 中,语法与 Java 相似,但抛弃了 Java 的一些烦琐的语法规则,提供了更加简洁和灵活的编程体验。 Groovy 的特点 1. 简洁的语法:Groovy 语法...

    Groovy轻松入门—搭建Groovy开发环境

    通过以上步骤,你已经成功搭建了Groovy开发环境,并对Groovy的基本概念有了初步了解。接下来,你可以继续深入学习,掌握Groovy的高级特性,如领域特定语言(DSLs)、Grails框架等,以提升你的开发效率。

    groovy-sdk-4.0.3

    Groovy SDK 4.0.3 是一个针对Groovy编程语言的软件开发工具包,它包含了Groovy语言的运行环境和开发所需的各种组件。Groovy是一种动态、灵活的面向对象编程语言,它与Java语法兼容,但提供了更简洁的语法和更强的...

Global site tag (gtag.js) - Google Analytics