2017-04-01 1 views
0

Je dois passer deux params via g: lien comme ci-dessousComment passer params en g: lien

<g:link controller="ClaimDetails" action="downloadFile1" params="[basePath:${session.basePath}, projCode:${session.projCode}]"><g:message code="claimDetails.ling.notice" /></g:link>

mais il me donne une erreur comme

citation attribut de valeur n » était pas t fermé (contrôleur = "ClaimDetails" action = "downloadFile1" params = "[basePath: $ {} session.basePath, projCode: $ {session.projCode}]")

Quand je donne params comme ba sePath: '$ {session.basePath}'

Il me donne seulement le texte.

Que dois-je faire?

+0

comme ci-dessous comme Mike a souligné vraiment question ici est $ {} session.basePath quand vous faites 'params = "[]"' soit déclarer maintenant variables brutes là 'params =" [basePath: session. basePath] "' qui devrait fonctionner de la même manière que 'params =" $ {[basePath: session.basePath]} "' une seule fois autour de la carte params entière déclarée que '[]' est comme si vous déclariez 'def a = [a: quelque chose, b: b] 'dans un contrôleur qui serait une carte – Vahid

Répondre

1

Vous n'avez pas besoin d'utiliser les $ {} dans une g: balise de lien si:

<g:link controller="ClaimDetails" action="downloadFile1" params="[basePath: session.basePath, projCode: session.projCode]"> 
    <g:message code="claimDetails.ling.notice" /> 
</g:link> 

Remarque: pourquoi utilisez-vous ces paramètres? parce que vous avez l'objet de session disponible sur votre action.

def action(){ 
    String basePath = session.basePath 
    String projCode = session.projCode 
} 
1

Essayez:

<g:link controller="ClaimDetails" action="downloadFile1" params="${[basePath: session.basePath, projCode: session.projCode]}"><g:message code="claimDetails.ling.notice" /></g:link>