实战 Groovy: 使用 Groovy 模板进行 MVC 编程
2009-11-19 00:00:00 来源:WEB开发网
清单 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 的语法。
更多精彩
赞助商链接