快速业务通道

精通Grails: 用定制URI和codec优化Grails中的URI - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
cott Davis

login 和 password 字段的作用不言自明;它们用来处理身份验证。name 字段用于显示的目的。比如 ,如果用 jsmith 登录,将会显示 “Jane Smith”。正如您所见,User 和 Entry 之间存在着一对多的 关系。

将 static belongsTo 字段添加到 grails-app/domain/Entry.groovy,以完成一对多的关系,如清单 2 所示:

清单 2. 向 Entry 类添加一对多的关系

class Entry {   static belongsTo = [author:User]   //snip }

我们注意到,在定义关系时,可以很容易地重命名此字段。User 类具有一个名为 entries 的字段。 Entry 类现在具有一个名为 author 的字段。

通常,在此时,都会创建一个相关的 UserController 以提供一个完整的 UI 来管理 Users。我却没 有打算这么做。我只是想用几个无存根的 Users 作为占位符。在下一篇 精通 Grails 的文章中,您将更 为全面地了解用户身份验证和授权的相关内容。因此,我们走 “刚刚好” 的路线,通过使用 grails- app/conf/BootStrap.groovy 添加几个新用户,如清单 3 所示:

清单 3. 在 BootStrap.groovy 中使用无存根 Users

import  grails.util.GrailsUtil class BootStrap {   def init = { servletContext ->    switch(GrailsUtil.environment){     case "development":      def jdoe = new User(login:"jdoe", password:"password", name:"John Doe")      def e1 = new Entry(title:"Grails 1.1 beta is out",        summary:"Check out the new features")      def e2 = new Entry(title:"Just Released - Groovy 1.6 beta 2",        summary:"It is looking good.")      jdoe.addToEntries(e1)      jdoe.addToEntries(e2)      jdoe.save()      def jsmith = new User(login:"jsmith", password:"wordpass", name:"Jane  Smith")      def e3 = new Entry(title:"Codecs in Grails", summary:"See Mastering  Grails")      def e4 = new Entry(title:"Testing with Groovy", summary:"See Practically  Groovy")      jsmith.addToEntries(e3)      jsmith.addToEntries(e4)      jsmith.save()     break     case "production":     break    }   }   def destroy = {   } }

精通Grails: 用定制URI和codec优化Grails中的URI(3)

时间:2011-08-02 IBM Scott Davis

请注意,我是如何将条目分配给一个 User 的。您无需担心处理主键或外键的麻烦。Grails Object Relational Mapping (GORM) API 让您能从对象的角度而不是关系数据库理论来进行思考。

接下来,对在 上一篇 文章中所创建的 grails-app/views/entry/_entry.gsp 局部模板稍作处理。在 Entry.lastUpdated 字段的旁边显示作者,如清单 4 所示:

清单 4. 向 to _entry.gsp 添加作者

<div class="entry">   <span class="entry-date">    <g:longDate>${entryInstance.lastUpdated}</g:longDate> :  ${entryInstance.author}   </span>   <h2><g:link action="show" id="${entryInstance.id}">${entryInstance.title}    </g:link></h2>   <p>${entryInstance.summary}</p> </div

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