快速业务通道

精通Grails: 了解插件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
'      id="searchableForm"      name="searchableForm"      method="get">   <g:textField name="q" value="${params.q}" size="50"/>   <input type="submit" value="Search" /> </g:form>

回过头,再看看 清单 10,可以发现一旦 q 参数内有了一个搜索条件,searchableService.search() 调用的结果就会被返回给 index.gsp。在 index.gsp 中的第 150 行左右,会显示这些结果,如清单 12 所示:

清单 12. 显示搜索结果

<g:if test="${haveResults}">   <div class="results">    <g:each var="result" in="${searchResult.results}" status="index">     <div class="result">      <g:set var="className" value="${ClassUtils.getShortName(result.getClass())}" />      <g:set var="link"          value="${createLink(controller: className[0].toLowerCase() +           className[1..-1],          action: ''show'',          id: result.id)}" />      <div class="name"><a href="${link}">${className} #${result.id} </a></div>      <g:set var="desc" value="${result.toString()}" />      <g:if test="${desc.size() > 120}">       <g:set var="desc" value="${desc[0..120] + ''...''}" />      </g:if>      <div class="desc">${desc.encodeAsHTML()}</div>      <div class="displayLink">${link}</div>     </div>    </g:each>   </div>   <!-- snip --> </g:if>

我鼓励您更深入地去探索 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 }

精通Grails: 了解插件(7)

时间:2011-07-25 IBM Scott Davis

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