WEB开发网
开发学院软件开发Java 精通 Grails: 了解插件 阅读

精通 Grails: 了解插件

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 我鼓励您更深入地去探索 Searchable 插件的奥秘,请见 grails-app/services/SearchableService.groovy,精通 Grails: 了解插件(10),注意到 lib 目录中已经包含了 Lucene 和 Compass 的 JAR 文件,到 src/ja

我鼓励您更深入地去探索 Searchable 插件的奥秘。请见 grails-app/services/SearchableService.groovy。注意到 lib 目录中已经包含了 Lucene 和 Compass 的 JAR 文件。到 src/java 和 src/groovy 目录去看看所有支持的类。再回顾一下 tests 目录中的 GroovyTestCase。一个典型 Grails 应用程序的所有部分都在这个插件里。

每当安装一个新插件,都要留意一下它的实现。这将有助于您识别所有可移动部分、了解它们是如何组合起来发挥作用的,并且 — 最重要的是 — 给您启示,教您如何能更好地将它们融入到您的应用程序中。接下来的一节,您将看到如何将搜索功能从默认实现转到您自已的定制组件中。

将搜索更深入地并入到 Blogito

下面教您如何添加对 Entries 的搜索。首先,在一个文本编辑器内打开 grails-app/controllers/EntryController.groovy。添加一个简单的 search 动作,如清单 13 所示。(别忘了要允许未经身份验证的用户通过向 beforeInterceptor 添加 search 动作来进行博客条目的搜索。)


清单 13. 添加 search 动作
class EntryController { 
 
 def beforeInterceptor = 
   [action:this.&auth, except:["index", "list", "show", "atom", "search"]] 
 
 def search = { 
  render Entry.search(params.q, params) 
 } 
 
 //snip 
} 

正如在前一章节所展示的那样,SearchableService 非常适合用来进行跨所有域类的站点级别的搜索。但 Searchable 插件也可以在您个人的域类上做一些元编程。正像 Grails 可以动态地添加 list()、get() 和 findBy() 方法一样,Searchable 插件可以添加一个 search() 方法。

上一页  5 6 7 8 9 10 

Tags:精通 Grails 了解

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接