Sto provando a disabilitare la pagina di ricerca predefinita del plug-in ricercabile (http://localhost/searchable/), ma non ho trovato il modo di farlo. Qualcuno sa come farlo, preferibilmente in modo legittimo, ma ricorrendo agli inganni se necessario?Disabilitare i grails Pagina di ricerca predefinita del plug-in per la ricerca?
5
A
risposta
4
Solitamente reindirizzo i gestori del codice di errore a un controller in modo da poter eseguire alcune registrazioni o qualsiasi altra cosa prima di visualizzare la vista. È possibile utilizzare che anche qui:
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')
}
}
dove ErrorsController sembra qualcosa di simile:
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'
}
}
e avrete bisogno di creare accessDenied.gsp, notFound.gsp, e notAllowed.gsp in grails- app/errori
Inviando un controller "nascosto" alla sua mappatura personalizzata è possibile accedere all'accesso inaspettato ad esso, ma rendere ancora la pagina 404 per nascondere la sua esistenza.
Questa è una buona idea, quindi posso farlo sembrare qualsiasi altro errore non trovato. Mi piace! Avevo creato un /views/searchable/index.gsp per sovrascrivere quello incluso con il plugin, ma mi limiterò a liberarmene e lo farò in questo modo. Grazie! –
@Burt: c'è un modo per disabilitare/rimuovere l'UrlMapping all'avvio? Questa sarebbe una soluzione molto più elegante. –
Probabilmente potresti rimuoverlo, ma dubito che sarebbe una soluzione semplice. Sembra un buon candidato per una richiesta di funzionalità. Probabilmente potrebbe essere implementato quando facciamo i namespace dei controller (provvisoriamente v2.2). –