2011-08-26 31 views
0

如何在使用NodeBuilder模式时基于groovy中的条件设置动态节点属性?如何在groovy中使用NodeBuilder模式动态设置节点属性

像下面

def b = DOMBuilder.newInstance() 
b.div (attribute: "value") { 
    if (condition) { 
     // Set div.dynamicAttribute to true here 
    } 

} 

最好这将是很好的参考当前元素的条件语句,因为情况可能出现在结构深处。

回答

2

最简单的方法是评估节点闭包之外动态属性的条件。例如:

if (condition) { 
    b.div(attribute: "value", dynamicAttribute: true) { 
     ... 
    } 
} else { 
    b.div(attribute: "value") { 
     ... 
    } 
} 

替代地,可以创建地图的属性的一个预先:

def attributes = [attribute: "value"] 
if (condition) { 
    attributes['dynamicAttribute'] = true 
} 
b.div(attributes) { 
    ... 
} 
相关问题