ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:277.52KB ,
资源ID:15702344      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15702344.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(play手把手教你创建一个博客项目06增加特征tagging支持Word文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

play手把手教你创建一个博客项目06增加特征tagging支持Word文档格式.docx

1、 public int compareTo(Tag otherTag) return pareTo(otherTag.name);由于我们打算用findOrCreateByName(String name)工厂方法来实现懒散式特征创建或得到这些特征。那么,让我们把它添加到Tag类里:public static Tag findOrCreateByName(String name) Tag tag = Tag.find(byName, name).first(); if(tag = null) tag = new Tag(name); return tag;Tagging posts是时候创建T

2、ag模型与Post模型的关系了,让我们在Post类里创建正确的关系:ManyToMany(cascade=CascadeType.PERSIST)public Set tags;public Post(User author, String title, String content) ments = new ArrayList(); this.tags = new TreeSet this.author = author; this.title = title; this.content = content; this.postedAt = new Date();请注意,在这里我们使用了Tr

3、eeSet以可预知的顺序来保存特征列表 (事实上是按字母顺序的,这是基于我们之前compareTo实现)。在这里,我们仅使用单向关系。同时,我们将添加很多帮助方法来使特征管理简单化,第一个用于tag一个Post:public Post tagItWith(String name) tags.add(Tag.findOrCreateByName(name); return this;下一个用于通过指定的tag找回所有的博文:public static List findTaggedWith(String tag) return Post.find( select distinct p from

4、Post p join p.tags as t where t.name = ?, tag ).fetch();是时候测试这些新代码了,让我们重新启动服务器到测试模式:$ play test在basicTest类里添加Test:Testpublic void testTags() / Create a new user and save it User bob = new User(bob, secretBob).save(); / Create a new post Post bobPost = new Post(bob, My first postHello world Post anot

5、herBobPost = new Post(bob, Hop / Well assertEquals(0, Post.findTaggedWith(Red).size(); / Tag it now bobPost.tagItWith().tagItWith(Blue anotherBobPost.tagItWith(Green / Check assertEquals(2, Post.findTaggedWith( assertEquals(1, Post.findTaggedWith(检查其是否正常工作。下面的内容比上面的要难一点好了,如果打算用多个tag来找回博文又该怎么做?看起来,这样

6、难一点!下面我将给你一些非常有用的JPQL查询,这些查询可能对你的web项目有用: findTaggedWith(String. tags) select distinct p from Post p join p.tags as t where t.name in (:tags) group by p.id, p.author, p.title, p.content,p.postedAt having count(t.id) = :size ).bind(tags, tags).bind(, tags.length).fetch();最棘手的部分就是我们必须使用having count语句来

7、对联合查询视图进行过滤,仅让完全拥有全部tag的博文通过。请注意,在这里我们不能使用Post.find(, tags, tags.count)签名进行查询。这是因为tags已经是变量参数(vararg)了。测试程序如下:assertEquals(1, Post.findTaggedWith(assertEquals(0, Post.findTaggedWith(特征(tag)云哪里有tags,哪里就需要一个tag云。让我们在Tag类里添加一个方法来生成tag云:Map getCloud() List result = Tag.find(select new map(t.name as tag,

8、 count(p.id) as pound) from Post p join p.tags as t group by t.name order by t.name return result;在这里,我们使用了hibernate的一个现成特性,这个特性允许我们从一个JPA查询里返回一个定制对象。这个在List里的结果包含了一个Map,Map中的每个tag都带有两个key:tag用作tag名称,pound用作tag统计结果。测试代码为:List A Play注意:一定要把这些Tags数据描述添加到YAML文件头部,这是因为这些数据需要在任何Post引用它们时进行创建。现在重新启动应用程序,强

9、制加载这些新的数据集。请注意,play甚至会告诉你在YAML文件里存在的问题:然后修改#display /标签来显示这些tag集(在full博文视图下)。修改/yabe/app/views/tags/display.html文件:#if _as != full  |& $_ments.size() ?: no comment$_ments.size().pluralize() #if _ments , latest by $_ments0.author #/if/span#/if#elseif _post.tagspost-tags - Tagged #list items:_post.tags, as:taga href=#$tag$tag_isLast ? :, #/list#/elseif创建特征相关(tagged with)页面现在,我们就可以通过tags(特征)来列出发表的博文。在上面的#display / 标签里,我们把链接暂时留为空链接(用#),下面我们将通过一个链接到新创建的listTagged action替换他们:- Tagged#list items:Application.listTagged(tag.name)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1