Wie lautet die Konfigurationseinstellung zum Ändern der Standard-Startseite in einer Grails-Anwendung, damit sie nicht länger appName/index.gsp ist? Natürlich können Sie diese Seite als Weiterleitung einrichten, aber es muss einen besseren Weg geben.Wie ändern Sie die Standard-Homepage in einer Grails-Anwendung?
Antwort
bearbeiten UrlMappings.groovy
zum Beispiel Fügen Sie diese Regel hinzuzufügen, die Wurzel mit einem Homecontroller zu behandeln.
"/" (Controller: 'Heimat')
Fügen Sie diese in UrlMappings.groovy
"/" { controller = "yourController" action = "yourAction" }
durch den urlMappings auf diese Weise konfiguriert, die Home-Seite des App wird yourWebApp/yourController /Deine Handlung.
(Schnitt/Einfügen von IntelliGrape Blog)
Vielleicht hat sich die Methode in nachfolgenden Versionen von Grails geändert, weil es unter 1.3.7 nicht funktioniert. Die Syntax, die von daherman gepostet wurde, funktionierte für mich. – jerseyboy
Es sollte funktionieren, nach [offizielle Dokumente] (https://grails.github.io/grails-doc/1.3.7/guide/single.html#6.4.1%20Mapping%20to%20Controllers%20and%20Actions) aber denken Sie daran, den Kurznamen für Ihren Controller zu verwenden - dh wenn Ihre Controller-Klasse BooksController ist, dann beziehen Sie sich darauf nur auf "Bücher". – Wonko
einfache und saubere
Gehen Sie zu Datei: Grails-app/conf/UrlMappings.groovy.
Ersetzen Sie die Zeile: "/" (view: "/ index") mit "/" (Controller: 'home', Aktion: "/ index").
Home Ihr Controller ist mit dem Controller zu starten und Wirkung (wie im Frühjahr Sicherheit können Sie 'login' verwenden) ist die Grails-Seite anzeigen assoziiert (In Spring Security '/ Auth').
Fügen Sie die Umleitung von Seiten entsprechend Ihren Anwendungsanforderungen hinzu.
Sie können versuchen, als
in der UrlMappings.groovy Klasse folgt, die innerhalb der Konfigurationsordner ist:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
//"/"(view:"/index")
"/" (controller:'Item', action:'index') // Here i have changed the desired action to show the desired page while running the application
"500"(view:'/error')
}
}
hoffe, das hilft,
Rubel
die Antworten sind alle richtig! Aber lassen Sie uns ein Szenario vorstellen:
Ich zugeordnet Pfad "/" mit dem Controller: "Home" und Aktion: "index", so wenn ich "/ app-name /" zugreifen wird der Controller Home ausgeführt, aber wenn Ich tippe den Pfad "/ app-name/home/index", es wird trotzdem ausgeführt! Es gibt also 2 Pfade für eine Ressource. es würde funktionieren, bis jemand den "home/index" -Pfad findet.
eine andere Sache ist, wenn ich ein Formular ohne action-Attribut angegeben haben, so wird standardmäßig POST an den gleichen Controller und Aktion! Wenn also das Formular dem Pfad "/" zugeordnet ist und kein Aktionsattribut angegeben ist, wird es an denselben Controller gesendet, aber diesmal ist der Pfad "home/index" in Ihrer Adresszeile, nicht "/", weil es an den Controller/die Aktion nicht an den URI gesendet wird.
Um dieses Problem zu lösen, müssen Sie diese Zeilen entfernen oder auskommentieren.
// "/$controller/$action?/$id?(.$format)?"{
// constraints {
// // apply constraints here
// }
// }
So jetzt, wenn Sie auf "/" zugreifen, wird funktionieren. aber "home/index" wird nicht.Aber es gibt einen einzigen Fehler, jetzt müssen Sie alle Pfade den Controllern manuell zuordnen, indem Sie explizit in die URLMapping-Datei schreiben. Ich schätze, das würde helfen!
Verwenden Controller, Ansicht und Aktionsparameter durch die folgende Syntax:
class UrlMappings {
static mappings = {
"/" (controller:'dashboard', view: 'index', action: 'index')
"500"(view:'/error')
}
}
für mich gearbeitet, unter Grails 1.3.7, mit einer Aktion: Taste. – jerseyboy