2011-04-07 108 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

相關問題