2009-12-03 4 views
1

LeGrails <g: balise de lien fonctionne parfois et parfois ne pas>

<g:link controller="foo" action="bar">foobar</g:link> 

balise fonctionne parfois, qui est considérée comme rend

<a href="grailsapp/foo/bar">foobar</a> 

et parfois il ne fonctionne pas. Dans ce cas, je vais un

<a href="grailsapp/">foobar</a> 

Est-ce que quelqu'un sait quelles conditions provoquent cette balise pour ne pas se développer? Est-il également possible de déboguer la logique d'extension de balise?

Répondre

0

Cela pourrait ne pas résoudre votre problème ou tout le monde, mais j'ai eu ce même problème se produire pour moi. J'ai eu un/mywebapp/session/URL de connexion que je voulais lier, mais <g:link controller="session" action="login"> juste résolu à/mywebapp /.

Mais il s'est avéré que j'avais mappé ma racine de contexte "/" pour afficher la page de connexion. J'avais pensé qu'il redirigerait, mais vraiment il a exposé la page Session.login à "/". Donc, quand on a dit à Grails de créer un lien pour aller à Session.login, le lien le plus simple qu'il pourrait trouver avec ça m'aurait fallu "/". Donc "/" était correct après tout.

Si vous ne pouvez toujours pas fonctionner, mais vous avez encore un moyen de générer des liens relatifs à la racine de votre contexte, vous pouvez utiliser <a href="${createLink(uri: '/foo/bar')}">

1

Pour debug - le fichier dont vous avez besoin est à

GRAILS_HOME $ \ src \ java \ org \ Codehaus \ \ groovy Grails \ plugins \ web \ taglib \ ApplicationTagLib.groovy

0

Une seule remarque qui peut être utile:

Si vous êtes dans un fichier .gsp dans le dossier:

  • vue
  • nom_contrôleur
  • your_view.gsp

Cela fonctionne bien: >><a href="${createLink(uri: '/foo/bar')}">

Si vous êtes dans un .gsp de fichier dans src/modèle (par exemple pour modifier le list.gsp, create.gsp, etc.):

Vous devez ajouter une barre oblique inverse comme ceci: <a href="\${createLink(uri: '/foo/bar')}">

Questions connexes