`
lifethinker
  • 浏览: 71301 次
  • 性别: 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引擎的代码。
分享到:
评论

相关推荐

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

    groovy脚本实现对数据库的增删改查,groovy脚本不需要编译,十分实用

    groovy-3.0.9-API文档-中文版.zip

    赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...

    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] Making Java Groovy 英文版

    Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day to day work with Java It starts by introducing the key differences between Java and Groovy and how you...

    groovy入门经典,groovyeclipse 插件

    groovy入门经典,groovyeclipse 插件

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

    Java调用Groovy,实时动态加载数据库groovy脚本,java读取mongoDB的groovy脚本,加载实时运行,热部署

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

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

    Groovy-3.0.jar

    Groovy jar包 3.0.

    groovy-2.3.6-installer

    groovy-2.3.6-installer windows安装版本

    Groovy入门经典.pdf

    可以作为对Groovy语言感兴趣的计算机软件开发人员的参考书。需要的朋友们就赶紧来下载试试吧!  Groovy提供类似于Java的语法结构,本地化支持映射和列表、方法、类,闭包和构造器等结构。由于具有动态弱类型,...

    精通 Groovy--下一代开发语言

    什么是 Groovy? Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,...

    Groovy.in.Action.2nd.Edition.1935182

    Groovy in Action, Second Edition is the undisputed definitive reference on the Groovy language. Written by core members of the Groovy language team, this book presents Groovy like no other can—from ...

    apache-groovy-sdk-2.4.11

    了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。编写第一个 Groovy 类,然后学习如何使用 JUnit 轻松地进行测试。借助功能完善的 Groovy 开发环境和使用技能,...

    Groovy学习笔记 PDF版

    Groovy

    groovy-3.0.7.msi

    groovy

    groovy和Java相互调用1

    Groovy 调用 Java 类groovy 调用 Java class 十分方便,只需要在类前导入该 Java 类,在 Groovy 代码中就可以无缝使用该

Global site tag (gtag.js) - Google Analytics