2011-04-07 6 views
0

내 컨트롤러에 다음과 같은 '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을 브라우저에 반환하는 대신 변수에 저장하는 방법을 알아야합니다. 대답은 오히려 render 방법에 XML-생성 폐쇄를 전달하는 대신, 직접 XMLBuilder API를 사용하는 것입니다 :

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

최고, 감사합니다! –

관련 문제