2017-06-06 3 views
0

がなければ、条件にdiplayタグ私はFreeMarkerのテンプレートでこれを使用して回避する方法を探しています:FreeMarkerの:ブロック

<#if getName()??> 
    <Name>getName()</Name> 
</#if> 

私は多くのことをテストする必要があるため。

たとえば、タグのパラメータを使用してそれを行う方法はありますか? 値がnullの場合、タグの書き込みは一切行わないでください。 (だから、感嘆符が十分ではありません)

よろしく

+0

これは問題ではありませんでしたが、一般的に 'getName()'ではなく 'name'を書くことができます。 – ddekany

答えて

1

すべてのタグは、同じ基本構造従っている場合:

<Tag>value</Tag> 

をあなた自身にいくつかのタイピングを節約するために、マクロを使用することができます。

<#macro optional tag value=[]> 
    <#if value?has_content> 
     <${tag}>${value}</${tag}> 
    </#if> 
</#macro> 

このように適用します。

<@optional tag='User' value=user/> 
    <@optional tag='Name' value=name/> 
0次の出力コードが得られ

:特性の一つは出力から省略される全体のタグを定義されていない場合

<User>myuser</User> 
    <Name>myname</User>