2011-04-07 61 views
0

我的控制器中有以下'render as xml'代码,它按预期工作,但是我希望通过电子邮件发送此页面或以XML格式显示此页面的内容。我很困惑如何去做这件事。提前致谢。电子邮件呈现的XML

def xmlList = { 
    def list = foo.list() 
    render(contentType:"text/xml"){ 
    foo{ 
     bar{ 
     for(a in list){ 
      foobar(id:a..id) 
     } 
     } 
    } 
    } 
} 

回答

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 
} 
+0

真棒,谢谢! – 2011-04-07 17:25:15