簡體   English   中英

Grails 呈現 XML 調用來自同一控制器的另一個操作

[英]Grails render XML invokes another action from the same controller

我正在使用 Grails 2.4.4 並且有一個以這種方式呈現的操作:

def subjects = [...]
render(contentType:"text/xml", encoding:"UTF-8") {
  'result' {
     'patients' {
        subjects.each { person ->
           delegate.patient {
              uid(person.uid)
              firstName(person.firstName)
              lastName(person.lastName)
              ...
           }
        }
     }
 ...

在同一個控制器上,我有一個“getPatient”動作,並且在處理 XML 渲染時調用該動作,從這一行開始:delegate.patient

我嘗試使用“委托”(似乎委托是控制器本身),我還嘗試引用像“患者”{...}這樣的節點,但是每次都會調用 getPatient 。

有沒有辦法在不更改 getPatient 操作名稱的情況下使此 XML 呈現工作?

我很驚訝patient周圍的引語不起作用。

答案是您需要引用it或命名在閉包中傳遞的參數並使用it而不是delegate

在這種情況下, it指的是BaseMarkupBuilder類中的內部類(文檔)。

render(contentType:"text/xml", encoding:"UTF-8") {
    'result' {
        'patients' {
            subjects.each { person ->
                it.'patient' {
                    uid(person.uid)
                    firstName(person.firstName)
                    lastName(person.lastName)
                }
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM