我有一个控制器操作并在其中发送邮件,例如:
mailService.sendMail {
...
g.render(template: "mailtemplate")
}
此模板文件中的名为_mailtemplate.gsp
我使用
<a href="<g:createLink controller="servicecontroller" action="confirm"/>">linktext</a>
但输出是http://action
......就是这样!我希望有http://www.example.com/action
。如果我在gsp中使用相同的createLink
标签而不是模板,那么它就可以了(顺便说一句,电子邮件工作正常,此模板中的所有其他内容都可以很好地呈现)。
你有什么建议吗?
答案 0 :(得分:3)
可能你需要绝对的链接:
<a href="<g:createLink controller="servicecontroller" action="confirm" absolute="true"/>">linktext</a>
顺便说一下,你也可以在那里使用${}
语法,例如:
<a href="${g.createLink(controller: "servicecontroller", action: "confirm", absolute: true)}">linktext</a>
答案 1 :(得分:0)
引用:我必须在配置文件中指定serverURL,但我想要动态
您可以这样做:
<强> Config.groovy中:强>
environments {
development {
grails.serverURL = "http://localhost:8080"
}
production {
grails.serverURL = "http://www.mywebsite.com"
}
}
然后在您的服务中发送电子邮件:
import org.codehaus.groovy.grails.commons.ConfigurationHolder
def baseURL = ConfigurationHolder.config.grails.serverURL
mailService.sendMail {
...
g.render(template: "mailtemplate", model:['baseURL':baseURL])
}
最后在您的链接中
<a href="<g:createLink controller="servicecontroller" action="confirm" base="${baseURL}"/>">linktext</a>
我希望这会有所帮助