2010-07-03 1 views
5

Я пытаюсь отключить поисковую страницу поиска по умолчанию для поиска (http://localhost/searchable/), но не нашел способ сделать это. Кто-нибудь знает, как это можно сделать, желательно законным способом, но при необходимости прибегать к обману?Отключить grails Поиск по поисковой плагин странице поиска по умолчанию?

ответ

4

Я обычно перенаправляю обработчики кода ошибки на контроллер, поэтому я могу сделать некоторые записи или что-то еще перед визуализацией представления. Вы можете использовать это здесь также:

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' 
    } 
} 

и вам нужно создать accessDenied.gsp, notFound.gsp и notAllowed.gsp в grails- app/errors

Отправляя «скрытый» контроллер на свое настраиваемое сопоставление, вы можете анонсировать неожиданный доступ к нему, но все же визуализировать страницу 404, чтобы скрыть ее существование.

+0

Это хорошая идея, тогда я могу заставить ее выглядеть как любой другой ресурс, который не найден. Мне это нравится! Я создал /views/searchable/index.gsp, чтобы перезаписать тот, который включен в плагин, но я просто избавлюсь от этого и сделаю это таким образом. Благодаря! –

+0

@Burt - есть ли способ отключить/удалить UrlMapping при запуске? Это было бы гораздо более элегантным решением. –

+0

Возможно, вы можете удалить его, но я сомневаюсь, что это будет простое исправление. Кажется хорошим кандидатом на запрос функции. Вероятно, он может быть реализован, когда мы будем использовать пространства имен контроллеров (предварительно v2.2). –