2009-06-26 2 views
2

J'ai un menu chargé à partir de la mise en page principale. dans le menu, je dois mettre en évidence le menu spécifique si les utilisateurs cliquent sur ce menu. Je le détecte en fonction du nom du contrôleur.Comment créer un "clone" de contrôleur dans Grails?

J'ai 2 menu qui a des noms différents à savoir les utilisateurs Modifier et Client Modifier. Les deux partagent le même contrôleur (par exemple: UserController) et le même domaine.

J'ai essayé de créer alias pour que, dans UrlMappings tels que: "/ client/modifier /" (contrôleur: "user", action: "modifier")

mais sur la mise en page principale, il semble didn n'est pas reconnu comme "client" mais comme "utilisateur"

Y at-il une bonne façon de résoudre ce problème sans dupliquer le contrôleur? puis-je hériter du contrôleur? si oui, comment le faire ...

merci beaucoup.

Répondre

0

utilisation d'un filtre à ajouter au modèle le nom de contrôleur et de le modifier en fonction de:

par exemple mettre cela dans le /grails-app/conf/MenuAddingFilter.groovy

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

puis dans votre page .gsp, vous aurez la propriété MENUNAME disponibles. voir http://www.grails.org/Filters pour plus d'informations.

Questions connexes