【问题标题】:Disable grails Searchable plugin default search page?禁用 grails Searchable 插件默认搜索页面?
【发布时间】:2010-07-03 03:27:06
【问题描述】:

我正在尝试禁用 Searchable 插件默认搜索页面 (http://localhost/searchable/),但还没有找到方法。任何人都知道如何做到这一点,最好以合法的方式,但必要时诉诸诡计?

【问题讨论】:

    标签: grails searchable


    【解决方案1】:

    我通常将错误代码处理程序重新路由到控制器,以便在呈现视图之前进行一些日志记录或其他操作。你也可以在这里使用它:

    class UrlMappings {
    
       static mappings = {
    
          "/searchable/$action?"(controller: "errors", action: "urlMapping")
    
          "/$controller/$action?/$id?" { }
    
          "/"(view:"/index")
    
          "403"(controller: "errors", action: "accessDenied")
          "404"(controller: "errors", action: "notFound")
          "405"(controller: "errors", action: "notAllowed")
          "500"(view: '/error')
       }
    }
    

    ErrorsController 看起来像这样:

    class ErrorsController {
    
       def accessDenied = {}
    
       def notFound = {
          log.debug "could not find $request.forwardURI"
       }
    
       def notAllowed = {}
    
       def urlMapping = {
          log.warn "unexpected call to URL-Mapped $request.forwardURI"
          render view: 'notFound'
       }
    }
    

    您需要在 grails-app/errors 中创建 accessDenied.gsp、notFound.gsp 和 notAllowed.gsp

    通过将“隐藏”控制器发送到其自定义映射,您可以记录对其的意外访问,但仍会呈现 404 页面以隐藏其存在。

    【讨论】:

    • 这是个好主意,然后我可以让它看起来像任何其他资源未找到错误。我喜欢!我创建了一个 /views/searchable/index.gsp 来覆盖插件中包含的那个,但我将摆脱它并以这种方式进行。谢谢!
    • @Burt - 有没有办法在启动时禁用/删除 UrlMapping?那将是一个更优雅的解决方案。
    • 您可能可以删除它,但我怀疑它会是一个简单的修复。似乎是功能请求的好人选。当我们使用控制器命名空间(暂定为 v2.2)时,它可能会实现。
    • 不要忘记添加以下 URI,否则它仍然是打开的:"/searchable"(controller: "errors", action: "urlMapping")
    猜你喜欢
    • 2013-03-01
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    相关资源
    最近更新 更多