禁用grails可搜索插件默认搜索页面?
我正在尝试禁用可搜索插件默认搜索页面(),但还没有找到一种方法。任何人都知道如何做到这一点,最好是以合法的方式,但如果有必要,可以采取欺骗手段?我通常会将错误代码处理程序重新路由到控制器,以便在渲染视图之前进行一些日志记录或其他操作。您也可以在此处使用:禁用grails可搜索插件默认搜索页面?,grails,searchable,Grails,Searchable,我正在尝试禁用可搜索插件默认搜索页面(),但还没有找到一种方法。任何人都知道如何做到这一点,最好是以合法的方式,但如果有必要,可以采取欺骗手段?我通常会将错误代码处理程序重新路由到控制器,以便在渲染视图之前进行一些日志记录或其他操作。您也可以在此处使用: class UrlMappings { static mappings = { "/searchable/$action?"(controller: "errors", action: "urlMapping")
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”(控制器:“errors”,操作:“urlMapping”)