🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:微信号 kaigejava2022

ftl(在 FreeMarker 模板中)判断对象是否存在及判断对象内容是否为空

2024-10-13 21:30   1060 浏览

需求:

ftl判断对象是否存在及判断对象内容是否为空 比如我的:${adConfig.adContent} 怎么写?

在 FreeMarker 模板中,您可以使用条件语句来判断对象是否存在以及对象的内容是否为空。以下是一些常见的判断方法:


1. 判断对象是否存在:

   使用 `??` 运算符来检查对象是否存在。


2. 判断对象内容是否为空:

   使用 `?has_content` 运算符来检查对象的内容是否为空。


结合这两个运算符,您可以编写如下的 FreeMarker 代码来判断 `adConfig` 对象是否存在,以及 `adConfig.adContent` 是否为空:

<#if adConfig?? && adConfig.adContent?has_content>
    <p>${adConfig.adContent}</p>
<#else>
    <p>广告内容不存在或为空</p>
</#if>


 解释:

`adConfig??`:检查 `adConfig` 对象是否存在。

 `adConfig.adContent?has_content`:检查 `adConfig.adContent` 是否存在且不为空。


详细说明:

`??` 运算符:用于检查变量是否存在。如果变量存在,则返回 `true`,否则返回 `false`。

`?has_content` 运算符:用于检查变量是否存在且不为空。如果变量存在且不为空字符串、非空集合、非空映射等,则返回 `true`,否则返回 `false`。


 示例:

假设 `adConfig` 对象存在,但 `adConfig.adContent` 为空字符串:

<#assign adConfig = { "adContent": "" }>
<#if adConfig?? && adConfig.adContent?has_content>
    <p>${adConfig.adContent}</p>
<#else>
    <p>广告内容不存在或为空</p>
</#if>


输出将是:

<p>广告内容不存在或为空</p>


假设 `adConfig` 对象存在,且 `adConfig.adContent` 为 "这是一个广告内容":

ftl
<#assign adConfig = { "adContent": "这是一个广告内容" }>
<#if adConfig?? && adConfig.adContent?has_content>
    <p>${adConfig.adContent}</p>
<#else>
    <p>广告内容不存在或为空</p>
</#if>


输出将是:

<p>这是一个广告内容</p>


通过这种方式,您可以确保在 FreeMarker 模板中安全地处理对象的存在性和内容的非空性。


喜欢 0

评论