电子邮件呈现XML

时间:2011-04-07 14:47:54

标签: java xml grails groovy

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

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

1 个答案:

答案 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
}