FreeMarker:在没有 if 块的情况下显示标签
FreeMarker : diplay tag on condition without if block
我正在寻找一种方法来避免在 FreeMarker 模板中使用它:
<#if getName()??>
<Name>getName()</Name>
</#if>
因为我需要测试很多东西。
有没有办法通过使用标签中的参数等方式来实现?
如果值为空,我根本不想写入标签。 (所以感叹号不够)
此致
如果您的所有标签都遵循相同的基本结构:
<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/>
导致以下输出代码:
<User>myuser</User>
<Name>myname</User>
如果其中一个属性未定义,则整个标记将从输出中省略。
我正在寻找一种方法来避免在 FreeMarker 模板中使用它:
<#if getName()??>
<Name>getName()</Name>
</#if>
因为我需要测试很多东西。
有没有办法通过使用标签中的参数等方式来实现? 如果值为空,我根本不想写入标签。 (所以感叹号不够)
此致
如果您的所有标签都遵循相同的基本结构:
<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/>
导致以下输出代码:
<User>myuser</User>
<Name>myname</User>
如果其中一个属性未定义,则整个标记将从输出中省略。