我正在使用带有mail-1.0-SNAPSHOT插件的Grails 1.3.7。我想使用GSP模板生成一条消息,我将其存储为/email/invitation.gsp
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>
元素中,但它是错误的网址。而不是形式
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
也会生成错误的网址,而省略absolute
会生成正确的网址。
有没有办法让它从服务中正常工作?
谢谢!
基因