[英]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.