建立標籤標籤
1.建立模型
@Entity
@Table(name = "blog_tag")public class Tag extends Model Implements名){ this.name = name;
}
public String toString() { return name; return name.compareTo(other)標籤.名稱);
}
public static Tag findOrCreateByName(String name) {
Tag tag = Tag.find("byName", name).first(); if(tag == null) {
Tag if(tag == null) {
Tag name } return tag;
}}
2.Post新增類別標籤屬性
@ManyToMany(cascade = CascadeType.PERSIST)public設定(<) ;標籤> Tags;public 使用者作者,字串標題,字串內容) {
.comments = new ArrayList}
3.Post類別新增法
關聯Post與Tag
public Post tagItWith(String name) {
}
凡
傳回關聯指定標籤的貼文集合
public static List
}
4.寫測試範例
@Testpublic void testTags() {
@Testpublic void testTags() { User("bob@Gmail.com", "secret", "Bob").save ();// 建立一個新貼文
Post bPost = new Post( Post bPost = new Post(bob, "Hello world").save(); Post anotherBobPost = new Post(bob, "Hop", "Hello world") 。節省();
// 嗯
assertEquals(0, Post.findTaggedWith("Red bobPost.tagItWith("Red").tagItWith("Blue").save ();
anotherBobPost.tagItWith("Red").tagItWith("Green").save();
).size()) ;
assertEquals(1, Post.findTaggedWith("紅色", "綠色").size());
assertEquals(0, Post.findTaggedWith,"藍色);
assertEquals(0, Post.findTaggedWith("綠色", "藍色").size()); }
測試Tag
/23.將標籤添加到頁面上
新增預置數據
標籤(播放):
名稱: 播放
標籤(架構):
名稱: 架構中 名稱: 架構中 名稱:
標籤(mvc):
名稱: MVC
貼文(jeffPost):
標題:MVC應用程式發布:2009-06-06
作者:jeff
標籤:
-play
-Architecture-mvc
內容:&gt; aplay
7。標籤顯示
render(tag, posts);
}
9.修改display.html,標籤顯示
- Tagg.標籤'}
${tag}${tag_isLast ? '' : ', '}
#{/list}
GET /posts/{tag} Application.listTededed
/posts/{id} Application.show
GET /posts/{tag } Application.listTagged
為{id}新增規則
GET
11.新增貼文清單頁面,有相同標籤的貼文
建立/app/views/Application/listTagged.html
#{extends 'main.html' /}
#{set title: '用' + 標籤標記的貼文/}
*{**** ***** 標題********* }*
#{if posts.size()>1}
#{/if}
#{elseif posts}
沒有標示為「${tag}」的貼文
#{/else}*{********* 貼文清單*********}*
#{顯示post:post, as:'teaser' /}
#{/list}