93

nullFreemarkerで値を処理する方法は?null値がデータに存在する場合、テンプレートにいくつかの例外があります。

4

5 に答える 5

120

freemarker 2.3.7以降では、次の構文を使用できます。

${(object.attribute)!}

または、属性が次の場合にデフォルトのテキストを表示する場合null

${(object.attribute)!"default text"}
于 2014-12-23T04:46:46.637 に答える
109

??テスト演算子を使用できます。

これにより、オブジェクトの属性がnullでないかどうかがチェックされます。

<#if object.attribute??></#if>

これは、オブジェクトまたは属性がnullでないかどうかをチェックします。

<#if (object.attribute)??></#if>

出典:FreeMarkerマニュアル

于 2012-12-19T10:35:59.697 に答える
5

私はそれが逆に機能すると思います

<#if object.attribute??>
   Do whatever you want....
</#if>

がNULLでない場合object.attribute、コンテンツが印刷されます。

于 2014-08-05T15:12:35.103 に答える
1

ステートメント??の最後に演算子を使用します。<#if>

この例nullは、Freemakerテンプレートで2つのリストの値を処理する方法を示しています。

List of cars:
<#if cars??>
    <#list cars as car>${car.owner};</#list>
</#if>
List of motocycles:
<#if motocycles??>
    <#list motocycles as motocycle>${motocycle.owner};</#list>
</#if>
于 2015-08-27T12:54:17.413 に答える
1

問題が発生した場合は、コンテキストを追加したいと思います。これが私が試したことです。

<#if Recipient.account_type?has_content>
  … (executes if variable exists)
<#else>
  … (executes if variable does not exist)
</#if>

これは、この値または必要なロジックを介した別のチェーンかどうかを確認するJavascriptIFおよびELSEの概念に似ています。

Freemarker webite

その他の参考資料:

シナリオ:顧客のIDと名前が13242 Harishのように組み合わされているため、関係者が唯一の名前を必要としている場合、この$ {record.entity?keep_after( "")}を試しましたが、機能しましたが、機能するのは次の場合のみです。あなたにはスペースがありますが、顧客にスペースと1つの名前がない場合、Null値をチェックするためにIFELSE条件を実行する必要がありました。

于 2021-06-10T19:23:14.630 に答える