快速业务通道

精通Grails: 文件上传和Atom联合 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
的各个部分远不如整个字符串的惟一性重要。应确保这个 id 以后不会因为无意中传入来自控制器 的变量而变化 — 对于 feed id,它应该既是惟一的,又是不变的。即使服务器的 address 发生变化, 如果 feed 的内容不变,那么 feed id 也应该保持不变。

更新后的字段应该符合特定的格式 — 2003-12-13T18:30:02Z,或者确切地说是 RFC 3339。在已有的 grails-app/taglib/DateTagLib.groovy 文件中添加一个 atomDate 闭包,如清单 18 所示:

清单 18. 添加 atomDate 标记

import java.text.SimpleDateFormat  class DateTagLib {   public static final String INCOMING_DATE_FORMAT = "yyyy-MM-dd hh:mm:ss"   public static final String ATOM_DATE_FORMAT = "yyyy-MM-dd''T''HH:mm:ss''- 07:00''"   def atomDate = {attrs, body ->    def b = attrs.body ?: body()    def d = new SimpleDateFormat(INCOMING_DATE_FORMAT).parse(b)    out << new SimpleDateFormat(ATOM_DATE_FORMAT).format(d)   }   //SNIP }

精通Grails: 文件上传和Atom联合(11)

时间:2011-08-02 IBM Scott Davis

为了完成 Atom feed,创建 grails-app/views/entry/_atomEntry.gsp,并添加清单 19 中的代码:

清单 19. _atomEntry.gsp 局部模板

<entry xmlns=''http://www.w3.org/2005/Atom''>   <author>    <name>${entryInstance.author.name}</name>   </author>   <published><g:atomDate>${entryInstance.dateCreated} </g:atomDate></published>   <updated><g:atomDate>${entryInstance.lastUpdated} </g:atomDate></updated>   <link href="http://blogito.org/blog/${entryInstance.author.login}/    ${entryInstance.title.encodeAsUnderscore()}" rel="alternate"    title="${entryInstance.title}" type="text/html" />   <id>tag:blogito.org,2009:/blog/${entryInstance.author.login}/    ${entryInstance.title.encodeAsUnderscore()}</id>   <title type="text">${entryInstance.title}</title>   <content type="xhtml">    <div xmlns="http://www.w3.org/1999/xhtml">     ${entryInstance.summary}    </div>   </content> </entry>

最后需要做的是向未经认证的用户开放 Atom feed。调整 EntryController.groovy 中的 beforeInterceptor,如清单 20 所示:

清单 20. 向未经认证的用户开放 Atom feed

class EntryController {   def beforeInterceptor = [action:this.&auth, except:["index", "list",  "show", "atom"]]   //SNIP }

重新启动 Grails,当访问 http://localhost:9090/blogito/entry/atom 时,应该产生一个格式良好 的 Atom feed,如清单 21 所示:

清单 21. 格式良好的 Atom feed

<feed xmlns="http://www.w3.org/2005/Atom">   <title type="text">News from Blogito.org</title>   <link rel="alternate" type="text/html" href="http://blogito.org/"/>   <link rel="self" type="application/atom+xml"  href="http://blogito.org/entry/atom" />  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号