精通Grails: 用Groovy服务器页面(GSP)改变视图 - 编程入门网
似乎有些过分,但是很多时候问题的源头正是这一行代码。编写测试并不难,而且保证安全要 比说抱歉更好。请输入 grails test-app 运行测试。如果一切正常,应该看到如清单 10 所示的信息:
清单 10.在 Grails 中通过测试
精通Grails: 用Groovy服务器页面(GSP)改变视图(5)时间:2011-08-02 IBM Scott Davis如果 TripTests 的样子让您感到惊讶,请不要担心。在输入 grails create-domain-class Trip 时 ,将会为您生成一个测试。实际上,每个 Grails create 命令都会生成对应的测试。确实,测试在现代 软件开发中如此 之重要。如果以前没有编写测试的习惯,那么 Grails 将优雅地将您带到正确的方向上 来,您肯定不会后悔。 grails test-app 命令除了运行测试之外,还会创建很好的 HTML 报告。请在浏览器中打开 test/reports/html/index.html,查看标准的 JUnit 测试报告,如图 1 所示。 图 1.单元测试报告 编写并测试过简单的自定义标记之后,现在要构建一个略微复杂一些的标记。 高级自定义标记 更复杂的标记中可以处理属性和标记体。例如,现在的版权标记还需要许多复制/粘贴工作才能满足需 求。我想像下面这样将当前的行为放在真正可重用的标记内: <g:copyright startYear="2002">FakeCo Inc.</g:copyright>。 清单 11 显示了代码: 清单 11.处理属性和标记体的 Grails 标记
请注意:attrs 是标记属性的 HashMap。在这里用它提取 startYear 属性。我将以闭包形式调用 thisYear 标记(这与我用大括号时从 GSP 页面所做的闭包调用相同)。类似地,body 也以闭包的形式 传递给标记,所以调用它的方式与调用其他标记的方式相同。这样确保了我的自定义标记可以按照任意深 度嵌套到 GSP 中。 您可能注意到,自定义 TagLibs 使用与标准 Grails TagLibs 相同的名称空间 g:。如果需要将自己 的 TagLibs 放在自定义名称空间内,请向 DateTagLib.groovy 中添加 static namespace = ''trip''。在 GSP 内,TagLib 现在应该是 <trip:copyright startYear="2002">FakeCo Inc.</trip:copyright>。 片断模板 自定义标记是重用简短代码的好方法,从而避免成为只能复制/粘贴的 scriptlet。但是对于更大块的 GSP 标记来说,可以使用片断模板。 片断模板在 Grails 文档中的官方称谓是模板。惟一的问题是模板 这个词用得太多了,在 Grails 中 有许多不同的意义。下一节就会看到,将安装改变搭建视图的默认模板。对这些模板的修改也包括本节要 讨论的片断模板。为了减少混淆,我从 Rails 社区借用了一个术语,将要表达的内容称为片断模板,或 者就称为片断。 片断模板是一大块能够在多个 Web 页面之间共享的 GSP 代码。例如,假设我要在所有页面底部使用 一个标准的页脚。为了实现这一目的,我要创建一个名 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |