WEB开发网
开发学院软件开发Java 实战 Groovy: 使用 Groovy 模板进行 MVC 编程 阅读

实战 Groovy: 使用 Groovy 模板进行 MVC 编程

 2009-11-19 00:00:00 来源:WEB开发网   
核心提示: 清单 13. 糟糕的代码 nfile.withPrintWriter{pwriter|pwriter.println("<md5report>")for(finscanner){f.eachLine{line|pwriter.println("<m


清单 13. 糟糕的代码
nfile.withPrintWriter{ pwriter | 
 pwriter.println("<md5report>") 
  for(f in scanner){ 
    f.eachLine{ line | 
     pwriter.println("<md5 class='" + f.path + "' value='" + line + "'/>") 
    } 
  } 
 pwriter.println("</md5report>") 
} 

为了帮您回顾一下有关这段内容的记忆,清单 13 中的代码使用了一些数据,并使用 PrintWriter 将其写入一个文件中(nfile 实例)。注意我是如何将报告的视图组件(XML)硬编码在 println 中的。这种方法的问题是它不够灵活。之后,如果我需要进行一些修改,就只能进入到 Groovy 脚本的逻辑中进行修改。在更糟糕的情况下,设想一下一个非程序员想要进行一些修改会是什么样子。Groovy 代码会受到很大的威胁。

将该脚本中的视图部分移动到模板中可以使维护更加方便,因为修改模板是任何人都会涉及的一个过程,因此我在此处也会这样做。

定义模板

现在我将开始定义模板了 —— 它看起来更加类似于想要的输出结果,采用了一些逻辑来循环遍历一组类。


清单 14. 为原来的代码应用模板
<md5report> 
<% for(clzz in clazzes) { 
 println "<md5 class=\"${clzz.name}\" value=\"${clzz.value}\"/>" 
}%> 
</md5report> 

清单 14 中定义的模板与为 GroovyTestCase 定义的模板类似,其中包括循环遍历一个集合的逻辑。还要注意我在此处混合使用了 JSP 和 GString 的语法。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:实战 Groovy 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接