2009-06-26 8 views
2

Ich habe ein Menü, das aus dem Hauptlayout geladen wurde. Im Menü muss ich das spezifische Menü hervorheben, wenn Benutzer auf dieses Menü klicken. Ich erkenne es anhand des Controllernamens.Wie erstellt man "Klon" des Controllers in Grails?

Ich habe 2 Menü, das verschiedene Namen hat, dh Benutzer bearbeiten und Client bearbeiten. Beide teilen sich den gleichen Controller (dh UserController) und die gleiche Domain.

Ich habe versucht, alias für den in urlMappings wie zu erstellen: "/ client/edit /" (Controller: "user", Aktion: "Bearbeiten")

aber auf dem Haupt Layout, es didn scheint Wird nicht als "Client" erkannt, aber als "Benutzer"

Gibt es eine nette Möglichkeit, dieses Problem zu lösen, ohne den Controller zu duplizieren? kann ich Controller erben? Wenn ja, wie das geht ...

vielen Dank.

Antwort

0

Verwendung ein Filter zum Modell der Controller-Namen und ändern Sie es hinzufügen entsprechen:

z.B. dieses in der /grails-app/conf/MenuAddingFilter.groovy

class MenuAddingFilter { 
    static filter = { 
     all(controller:'*', action:'*') { 
     after = { model -> 
      model.menuName = controllerName.replace("Controller","") 
     } 
     } 
    } 
} 

dann in Ihrer .gsp Seite finden Sie die MenuName Eigenschaft zur Verfügung haben. siehe http://www.grails.org/Filters für weitere Informationen.

Verwandte Themen