我的控制器中有以下'render as xml'代码,它按预期工作,但我希望以XML格式通过电子邮件发送此页面或此页面的内容。我很困惑如何去做这件事。提前谢谢。
def xmlList = {
def list = foo.list()
render(contentType:"text/xml"){
foo{
bar{
for(a in list){
foobar(id:a..id)
}
}
}
}
}
答案 0 :(得分:0)
我假设您已经知道如何从Grails应用程序发送电子邮件(如果您没有发布有关该问题的单独问题)。如果这个假设是有效的,那么你需要弄清楚如何将生成的XML存储在变量中,而不是将其返回给浏览器。答案只是直接使用XMLBuilder
API,而不是将生成XML的闭包传递给render
方法:
def xmlList = {
def list = foo.list()
def builder = new XMLBuilder()
def result = builder.build {
foo {
bar {
for(a in list) {
foobar(id:a..id)
}
}
}
}
def emailBody = result.toString()
// Now pass the emailBody (along with the recipient address, subject line, etc.)
// to whatever you use to send emails
}