キーと値とカスタムクラスを持つマップがあります。キークラスはPosition
と呼ばれ、たとえばnew Position(2, 4)
のための2つのint(でインスタンス化されます。FreeMarker:マップ値がnullであるかどうかを確認します。
私はこのポジションのクラスを取り除くとFreemarkerのでそれを使用するためにSimpleHash
にマップを変換してしまった。私は今、そのキーSimpleHash
を持っています位置(例えば"2 4"
用)の値と値null
又はLot
(カスタム)クラスのいずれかで再マッピング文字列である。
IはSimpleMapに与えられたアイテムの値が(map
として渡されたかどうかを確認する必要があるテンプレートで)がnullまたはLotインスタンスのいずれかである場合
<#list mapMinY..mapMaxY as y>
<tr>
<#list mapMinX..mapMaxX as x>
<td>
<div>
<!-- Check if map[x + " " + y] is null -->
${x}, ${y}
</div>
</td>
</#list>
</tr>
</#list>
どのようにするには?
ここにカスタムユーティリティは必要ありません。 FreeMarkerには、ヌル/欠損値を処理するためのかなりの専用演算子があります(下記の私の答えを見てください)。 ( '== true'チェックもむしろ奇妙に見えます)' utilClass.isNull'は欠落しているキーからもnullを返すことができませんでした。基本的には 'Map.get'が返すものを取得するだけです。両方の場合において、 – ddekany