FreeMarker は Web コンテナとは何の関係もありません。つまり、Web 上で実行する際のサーブレットや HTTP については認識しません。プレゼンテーション層の実装技術として使用できるだけでなく、XML、JSP、Java などの生成にも使用できます。
フリーマーカーでオブジェクトを表示するには、${name} を使用します。
しかし、name が null の場合、freemark はエラーを報告します。オブジェクトが空かどうかを判断する必要がある場合:
<#if name??> …… </#if>
もちろん、デフォルト値 ${name!''} を設定することで、オブジェクトが空であるというエラーを回避することもできます。 name が空の場合は、デフォルト値 (「!」以降の文字) が表示されます。
オブジェクト user と name が user の属性である場合、user と name の両方が空である場合は、${(user.name)!''} と書くことができます。これは、user または name が両方とも null であることを意味します。空として表示されます。
空と判断されました
<#if (user.name)??> …… </#if>
方法 2:
null またはミス値の場合、freemark はエラーを報告します
!: デフォルト値演算子。構文構造は次のとおりです: unsafe_expr!default_expr (例: ${mouse!"マウスなし"}) マウスが存在しない場合は、デフォルト値を返します。
(product.color)!"red" このメソッドは、product または color が欠落値である状況を処理できます。
そして、product.color!"red" は、色が値が欠落している場合のみを処理します
??: 欠損値テスト演算子、欠損値かどうかをテストします
unsafe_expr??: product.color?? は色が null かどうかのみをテストします
(unsafe_expr)??: (product.color)?? 製品と色が null かどうかをテストします
?exists:古いバージョンの使用
例:
<#if mouse??> Mouse found <#else> No mouse found </#if> Creating mouse... <#assign mouse = "Jerry"> <#if mouse??> Mouse found <#else> No mouse found </#if>