Grails render XML从同一控制器调用另一个操作
我正在研究Grails 2.4.4,有一个动作以这种方式呈现:Grails render XML从同一控制器调用另一个操作,xml,grails,Xml,Grails,我正在研究Grails 2.4.4,有一个动作以这种方式呈现: def subjects = [...] render(contentType:"text/xml", encoding:"UTF-8") { 'result' { 'patients' { subjects.each { person -> delegate.patient { uid(person.uid) firs
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
我试着使用“delegate”(似乎那里的委托就是控制器本身),我也试着引用像“patient”{…}这样的节点,但是每次都调用getPatient
有没有一种方法可以在不更改getPatient action name的情况下使这个XML渲染工作?我很惊讶
patient
周围的引用不起作用
答案不是delegate
,而是您需要参考it
,或者命名闭包中传递的参数并使用它
在这种情况下,it
指的是类中的内部类(文档)
一开始我几乎不相信你,但我创建了一个测试项目,并且得到了相同的行为。我会继续挖掘…不知道你是如何找到解决方案的,但这太棒了!
render(contentType:"text/xml", encoding:"UTF-8") {
'result' {
'patients' {
subjects.each { person ->
it.'patient' {
uid(person.uid)
firstName(person.firstName)
lastName(person.lastName)
}
}
}
}
}