2008-08-26 6 views

Antwort

10

bearbeiten UrlMappings.groovy

zum Beispiel Fügen Sie diese Regel hinzuzufügen, die Wurzel mit einem Homecontroller zu behandeln.

"/" (Controller: 'Heimat')

+1

für mich gearbeitet, unter Grails 1.3.7, mit einer Aktion: Taste. – jerseyboy

53

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)

+0

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

+2

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

2

einfache und saubere

  1. Gehen Sie zu Datei: Grails-app/conf/UrlMappings.groovy.

  2. 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.

11

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

0

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!

2

Verwenden Controller, Ansicht und Aktionsparameter durch die folgende Syntax:

class UrlMappings { 
    static mappings = { 
     "/" (controller:'dashboard', view: 'index', action: 'index') 
     "500"(view:'/error') 
    } 
}