Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 模板化:删除不使用';我没有数据_Java_Groovy_Template Engine - Fatal编程技术网

Java 模板化:删除不使用';我没有数据

Java 模板化:删除不使用';我没有数据,java,groovy,template-engine,Java,Groovy,Template Engine,我正在使用Groovy的xml模板特性。下面是我的模板和绑定。有时,我的姓氏没有任何值。如果groovy没有非空数据,我希望它不要创建元素。有人能建议怎么做吗 模板 <PersonName nameIdentifier="Current"> <FirstName>${FirstName}</FirstName> <LastName>${LastName}</LastName> </PersonName>

我正在使用Groovy的xml模板特性。下面是我的模板和绑定。有时,我的姓氏没有任何值。如果groovy没有非空数据,我希望它不要创建元素。有人能建议怎么做吗

模板

<PersonName nameIdentifier="Current">
     <FirstName>${FirstName}</FirstName>
     <LastName>${LastName}</LastName>
</PersonName>
public static String createXml(String templateResourceName, def bindings)
    {
        def engine = new XmlTemplateEngine()
        def output = engine.createTemplate(getResource(templateResourceName)).make(bindings)

        return output.toString()
    }
代码

<PersonName nameIdentifier="Current">
     <FirstName>${FirstName}</FirstName>
     <LastName>${LastName}</LastName>
</PersonName>
public static String createXml(String templateResourceName, def bindings)
    {
        def engine = new XmlTemplateEngine()
        def output = engine.createTemplate(getResource(templateResourceName)).make(bindings)

        return output.toString()
    }
我认为这是可行的:

但这是我第一次听说这个功能,所以如果它是这样的话,这将是一个幸运的猜测

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


def text='\n${FirstName}\n'

+1这适用于给定的示例(空字符串或null)
我尝试了这一点,但在[XmlTemplateEngine]中失败了以下错误java.lang.RuntimeException:解析XML源失败。原因:org.xml.sax.SAXParseException:元素的内容必须由格式良好的字符数据或标记组成。com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1231)groovy.util.XmlParser.parse(XmlParser.java:175)groovy.text.XmlTemplateEngine.createTemplate(XmlTemplateEngine.java:295)。。。3如果我使用SimpleTemplateEngine而不是XmlTemplateEngine,这一点就更有效了