2011-09-27 5 views
0

J'ai mis en place un service de partage de courrier électronique dans mon application Web. Les gens peuvent cliquer sur le email button et accéder à un formulaire avec lequel ils peuvent envoyer des emails à qui ils veulent. Je voudrais définir un subject et body par défaut.Grails - Passer un lien en tant que paramètre

Dans le default body text de l'email, je voudrais passer le lien de la page que les gens veulent partager. Il est sûrement possible de le faire mais je n'arrive pas à le faire. Jusqu'à présent, il a été une impasse d'essayer de passer le lien dans l'argument value de mon éditeur de texte. Je ne peux pas penser autrement.

Toute suggestion grandement appréciée.

Répondre

1

De la même manière que vous transmettez des données à d'autres champs que vous souhaitez remplir.

Par exemple, votre contrôleur renvoie un modèle emailShare qui contient subject, body et url etc

Dans votre gsp, permet de dire que vous avez un textarea pour le corps de votre email,

<g:textField name="emailSubject" value="${emailShare.subject}" /> 
<g:textArea name="emailBody" value="${emailShare.url}" rows="5" cols="40"/> 

Cette volonté définissez le url comme texte par défaut dans la zone de texte, qui peut également être modifié pour ajouter plus de texte.

+0

Ah ah, vous aviez raison en fait. Pour une raison quelconque, j'essayais désespérément de le faire à partir de la vue, quand il était si simple de le passer comme un modèle du contrôleur :) –

+0

Un de ces moments '* ding *' '* lightbulb *': D – gotomanners

1

Vous pouvez obtenir l'emplacement de la page en cours en utilisant JavaScript avec document.URL Ensuite, vous pouvez simplement définir un champ caché sur votre formulaire et le soumettre avec votre demande d'e-mail. Par exemple:

<html> 
<head> 
<script type="text/javascript"> 
    function setLocation(urlField) { 
     urlField.value = document.URL 
    } 
    </script> 
</head> 
<body> 

    <form id="exampleForm" name="exampleForm" action="#"> 
    <input type="text" id="url" name="url"/> 
    <input name="submit" value="submit" type="button" onclick="setLocation(this.form.url);" /> 
    </form> 
    </body> 
</html> 
Questions connexes