快速业务通道

精通Grails: 用Groovy服务器页面(GSP)改变视图 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
为 _footer.gsp 的代码片断。前面的下划线是对 框架的提示(对开发人员也是个明显的提示),告诉框架这不是个完整的格式良好的 GSP。如果我在 grails-app/views/trip 目录中创建这个文件,那么只有 Trip 视图才会看到它。我要将它保存在 grails-app/views 目录内,这样就能供所有页面全局共享。清单 12 显示了全局共享页脚的片断模板:

清单 12. Grails 片断模板

<div id="footer">   <copyright startYear=''2002''>FakeCo, Inc.</g:copyright>   <div id="powered-by">    <img src="${createLinkTo(dir:''images'', file:''grails-powered.jpg'')}" />   </div> </div>

精通Grails: 用Groovy服务器页面(GSP)改变视图(6)

时间:2011-08-02 IBM Scott Davis

可以看到,片断模板支持用 HTML/GSP 语法进行表达。对比之下,自定义 TagLib 是用 Groovy 编写 的。简要来说,TagLibs 一般情况下用来封闭小行为更合适,而片断模板更适于重用布局元素。

为了让这个示例能正常工作,还需要将 “Powered by Grails” 按钮下载到 grails-app/web- app/images 目录(请参阅 参考资料)。在下载页面上会看到其他许多附属内容,从高分辨率的 logo 到 16x16 大小的 favicons(浏览网站时在浏览器地址栏前显示的图标)。

清单 13 显示了如何在 list.gsp 页面底部包含新建的页脚:

清单 13.呈现片断模板

<html><body> ... <render template="/footer" /> </body></html>

请注意,在呈现模板时,要去掉下划线。如果在 trip 目录下保存 _footer.gsp,那么前面的斜杠也 要省略。可以这样认为:grails-app/views 目录是视图层次结构的根。

自定义默认搭建

有了一些良好的、可测试的、可重用的组件之后,可以将它们做为默认搭建的一部分。这部分内容是 在将 def scaffold = Foo 放入控制器之后动态生成的。默认搭建也是输入 grails generate-views Trip 或 grails generate-all Trip 时生成 GSP 的来源。

要定制默认搭建,请输入 grails install-templates。这样会在项目中加入新的 grails- app/src/templates 目录。应该看到三个目录,名为 artifacts、scaffolding 和 war。

artifacts 目录容纳各种 Groovy 类的模板: Controller、DomainClass、 TagLib,等等。例如,如 果想让所有控制器都扩展一个抽象父类,那么可以在这里进行修改。全部新控制器都将基于修改过的模板 代码(有些人会加入 def scaffold = @artifact.name@,这样动态搭建就会成为所有控制器的默认行为 )。

war 目录包含所有 Java EE 开发人员都熟悉的 web.xml 文件。如果需要添加自己的参数、过滤器或 servlet,请在这里进行操作(JSF 爱好者们:注意到了吗?)在输入 grails war 时,这里的 web.xml 文件就会被包含到生成的 WAR 内。

scaffolding 目录包含动态生成的视图的原始内容。请打开 list.gsp 并将 <render template="/footer" /> 添加到文件底部。因为这些模板是所有视图共享的,所以一定要使用全局片 断模板。

调整了列表视图之后,现在需要验证修改是否生效。对默认模板的修改是少数需要重新启动服务器的 操作之一。Grails 重新启动之后,请用浏览器访问 http://localhost:9090/trip- planner/airline/list。如果正在使用 AirlineController 的默认搭建,那么在页面底部就应该出现新 的页脚。

结束语

本期文章总结了 精通 Grails 的另一篇文章。现在您对 GSP 以及 Grails 可以使用的其他视图技术 应该有了进一步的了解,并更好地理解了在生成的众多页面中使用的默认标记。下次您再编写 scriptlet

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号