模板化:删除没有数据的元素

时间:2011-06-15 21:21:35

标签: java groovy template-engine

我正在使用Groovy的xml模板功能。下面是我的模板和装订。有时候我对LastName没有任何价值。如果它没有非空数据,我想groovy不创建元素。有人可以建议怎么做吗?

模板

<PersonName nameIdentifier="Current">
     <FirstName>${FirstName}</FirstName>
     <LastName>${LastName}</LastName>
</PersonName>

装订

def binding1 = ['FirstName':FirstName ,'LastName':'LastName']
def binding2 = ['FirstName':FirstName ,'LastName':'']

代码

public static String createXml(String templateResourceName, def bindings)
    {
        def engine = new XmlTemplateEngine()
        def output = engine.createTemplate(getResource(templateResourceName)).make(bindings)

        return output.toString()
    }

1 个答案:

答案 0 :(得分:2)

我认为这可行:

<% print LastName != null ? "<LastName>"+LastName+"</LastName>" : "" %>

但这是我第一次听说这个功能,所以如果确实如此,这将是一个幸运的猜测......

编辑:在Groovy Web控制台上尝试了一下 - 这应该可行:

def text = '<PersonName nameIdentifier="Current">\n<FirstName>${FirstName}</FirstName>\n<% print LastName != "" ? "<LastName>"+LastName+"</LastName>\\n" : "" %></PersonName>'