私のJavaコードにはList<String> listS =null
そして、これをテンプレートファイルに渡します。
今、私はif list has some data then only do something
。
私が試してみました
<#if listS = null>
AND
<#if !listS>
AND
<#if listS?size=0>
しかし、これらのどれも機能していないようです。私はいくつかのロジックを持っていますi Java code;を介して、ある条件が真である場合、i new
this listS
を入力します。
したがって、テンプレートファイルでlistS
が入力されているか、nullのみであるかを知る必要があります。
どうすればいいですか?ありがとう。
編集:また、このリストSを含む構造のリストがあり(人口の有無は別の問題です)、構造のリスト全体を渡すため、ブール値をリストのリストとともにテンプレートファイルに渡します構造は不可能です。なぜなら、私は各リスト内を横断する必要があり、その横断はテンプレートファイル自体で行いたいからです。
編集2:Java nullのことを知っている人のために、FreeMarker 2.3.xはそれらを欠損値として扱います。単に、テンプレート言語はnullの概念を知りません。たとえば、 maidenNameプロパティを持ち、そのプロパティの値がnullであるBeanは、テンプレートに関する限り、そのようなプロパティがまったくない場合と同じです(極端な使用をFreeMarkerに設定していない場合)オブジェクトラッパー、つまり)nullを返すメソッド呼び出しの結果も、変数の欠落として扱われます(ここでも、通常のオブジェクトラッパーを使用すると仮定します)。詳細はFAQを参照してください。
しかし、できる限り、それを機能させる方法についての答えはまだ得られていません。
使用 - has_content
ビルトイン:
<#if list5?has_content>
欠損値テスト演算子 を使用することもできます:
<#if listS??>
<#list listS.stuff as stuff>
${stuff.value}
</#list>
</#if>
<#list myList![] as element>
<#-- do something per element -->
</#list>
リストがヌルまたは空の場合、結果は空になります。