Es kann ein sauberer Weg, dies zu tun, aber ich mit Abbildung des Fehlercode an eine Steuerung und Handhabung der Logik dort hatte bekam:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?" { constraints {} }
"/"(view:"/index")
"403"(controller: "errors", action: "accessDenied")
"404"(controller: "errors", action: "notFound")
"405"(controller: "errors", action: "notAllowed")
"500"(view: '/error')
}
}
und dann den entsprechenden Controller (Grails-app erstellen /conf/controllers/ErrorsController.groovy):
import grails.util.Environment
class ErrorsController extends AbstractController {
def accessDenied = {}
def notFound = {}
def notAllowed = {}
def serverError = {
if (Environment.current == Environment.DEVELOPMENT) {
render view: '/error'
}
else {
render view: '/errorProd'
}
}
}
Sie müssen die entsprechenden GSPs in Grails-app/views/Fehler (accessDenied.gsp, notFound.gsp, etc.) und auch die neue schaffen Grails-App/Ansichten/FehlerProd.gsp. Durch die Weiterleitung an eine Controller-Methode für alle Fehlercodes erleichtern Sie es in Zukunft, den anderen Fehlercode-Handlern Logik hinzuzufügen.
Thx. Ich werde es versuchen und diesen Thread aktualisieren. Ist es nicht möglich, die if-Bedingung NUR für "500" -Mapping zu haben? – fabien7474
Ja. Das obige ist nur ein Beispiel – tinny
vielen Dank. Es klappt! – fabien7474