Я использую Grails 1.3.7 с плагином mail-1.0-SNAPSHOT. Я хотел бы создать сообщение, используя шаблон GSP, который я сохранил как /email/invitation.gsp
Соответствующая часть ВСП выглядит следующим образом:
<p>To create a login, click on this
<g:link controller="register" action="withInvitation" absolute="true"
params="[t:invitation.invitee.token]"
title="Create a new Querium login">link</g:link>.
</p>
и я звоню из моего сервиса следующим образом:
void generateInvitationEmail(Invitation invitation) {
def conf = SpringSecurityUtils.securityConfig
String name = invitation.inviter.displayName()
mailService.sendMail {
to invitation.invitee.email
from conf.ui.register.emailFrom
subject "${name} wants to collaborate with you on ${invitation.topic.name}"
body( view:"/email/invitation",
model:[invitation: invitation])
}
Хотя шаблон сортируется и электронная почта отправляется, есть две проблемы:
Если я укажу параметр absolute="true"
в теге <g:link />
, URL будет интерполирован в результирующий элемент <a ></a>
, но это неправильный URL. Вместо того, чтобы иметь форму
http://localhost:8080/appName/register/withInvitation?t=23bc7307-3558-46df-9c85-5f944eb26464
это выглядит так:
http://localhost:8080/appName/appName/register/withInvitation?t=23bc7307-3558-46df-9c85-5f944eb26464
С другой стороны, если я не укажу параметр absolute
, ссылка вообще не будет отправлена.
Если я отображаю этот шаблон из контроллера, указание absolute=true
также приводит к неправильному URL, тогда как пропуск absolute
создает правильный.
Есть ли способ заставить это работать должным образом из службы?
Спасибо!
Gene