转义Grails呈现XML生成器命名冲突
例如:转义Grails呈现XML生成器命名冲突,grails,groovy,Grails,Groovy,例如: def list = { books = Book.findAll(...) render(contentType: 'text/xml') { books(count: books.size()) { for(book in books) { book(id: book.id) { title(book.title) }
def list = {
books = Book.findAll(...)
render(contentType: 'text/xml') {
books(count: books.size()) {
for(book in books) {
book(id: book.id) {
title(book.title)
}
}
}
}
}
使用
book
和book
作为节点会导致命名冲突。我知道我可以重命名所有内容以防止问题发生,但是否有办法避开节点以防止问题发生并保持干净的命名约定 引用冲突节点生成术语:
'books'(count: books.size()) {
或者使用不同的局部变量名。Hubert Klein Ikkink发布了一篇博客文章,其中提供了一种替代解决方案: 他建议在节点名称前加上
delegate
,这样示例将变成:
def list = {
books = Book.findAll(...)
render(contentType: 'text/xml') {
delegate.books(count: books.size()) {
for(book in books) {
delegate.book(id: book.id) {
title(book.title)
}
}
}
}
}
我的印象是引用只适用于保留的词。非常感谢。