例如:
def list = {
books = Book.findAll(...)
render(contentType: 'text/xml') {
books(count: books.size()) {
for(book in books) {
book(id: book.id) {
title(book.title)
}
}
}
}
}
使用books
和book
作为节点会导致命名冲突。我知道我可以重命名所有内容以防止出现问题,但是有没有办法转义节点以防止出现问题并保持干净的命名约定?
最佳答案
Hubert Klein Ikkink 发布了一篇带有替代解决方案的博客文章:
Groovy Goodness: Solve Naming Conflicts with Builders
他建议在节点名称前添加 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)
}
}
}
}
}
关于grails - 转义 Grails 呈现 XML 构建器命名冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8638745/