精通Grails: 用Groovy服务器页面(GSP)改变视图 - 编程入门网
为 _footer.gsp 的代码片断。前面的下划线是对 框架的提示(对开发人员也是个明显的提示),告诉框架这不是个完整的格式良好的 GSP。如果我在 grails-app/views/trip 目录中创建这个文件,那么只有 Trip 视图才会看到它。我要将它保存在 grails-app/views 目录内,这样就能供所有页面全局共享。清单 12 显示了全局共享页脚的片断模板:
清单 12. Grails 片断模板
精通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.呈现片断模板
请注意,在呈现模板时,要去掉下划线。如果在 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |