精通Grails: 用定制URI和codec优化Grails中的URI - 编程入门网
将空白转变为下划线。要实现此目的,需要创建一个定制 codec(即 编码-解码器 的简写)。
创建 grails-app/utils/UnderscoreCodec 并添加清单 10 所示代码: 清单 10. 一个定制 codec
Grails 提供了几个开箱即用的内置 codec:HtmlCodec、UrlCodec、Base64Codec 和 JavaScriptCodec。HtmlCodec 是所生成的 GSP 文件内的 encodeAsHtml() 和 decodeHtml() 方法的源代 码。 您也可以向其中添加您自己的 codec。Grails 使用 grails-app/utils 目录内任何一个具有 Codec 后缀的类来将 encodeAs() 和 decode() 方法添加到 String。在本例中,Blogito 内的所有 String 都 魔法般地具有了两个新方法:encodeAsUnderscore() 和 decodeUnderscore()。 通过在 test/integration 内创建 UnderscoreCodecTests.groovy 可以验证这一点,如清单 11 所示 : 清单 11. 测试一个定制 codec
精通Grails: 用定制URI和codec优化Grails中的URI(8)时间:2011-08-02 IBM Scott Davis在命令行提示符键入 grails test-app 运行测试。所看到的结果应该类似清单 12: 清单 12. 测试成功运行后的输出
运行中的 Codec UnderscoreCodec 也就绪后,您就可以支持在 URI 中包括用户和条目标题 — 比如, http://localhost:9090/blogito/blog/jsmith/this_is_my_latest_entry。 首先,调整 UrlMappings.groovy 内的 /blog 映射以支持一个可选的 $title,如清单 13 所示。还 记得么,在 Groovy 内,尾部加个问号代表这是可选的。 清单 13. 在 URI 映射内允许可选标题
接下来,调整 EntryController.list 来说明新的 params.title 值,如清单 14 所示: 清单 14. 处理控制器内的 params.title
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |