2

是否有任何更短的方法可以使用 Apache Velocity 生成 xml 元素,如果值为 null 或为空,则元素具有自关闭标签。

但是,这可以通过放置 - #if #else #end 来实现。但我需要一些更短的方法来做到这一点,因为我需要在模板中的多个地方使用它。

            #if( $stu.libno )
                <libno>$stu.libno</libno>
            #else
                <libno />
            #end
4

1 回答 1

1

对于宏来说,这似乎是一个很好的用例:

#macro( optionalTag $tagName $value )
  #if( $value )
    <$tagName>$value</$tagName>
  #else
    <$tagName/>
  #end
#end

您可以在模板的开头或在共享的全局宏库文件中定义它。然后,你可以这样做:

#optionalTag( 'libno', $stu.libno )
于 2019-06-20T13:32:06.943 回答