私はThymeleafをSpring-Bootでパッケージ化して使用しています。ここでは主なテンプレートです:ThymeLeafフラグメントがfalse thで実行された場合:
<div class="container">
<table th:replace="fragments/resultTable" th:if="${results}">
<tr>
<th>Talent</th>
<th>Score</th>
</tr>
<tr>
<td>Confidence</td>
<td>1.0</td>
</tr>
</table>
</div>
そしてそれは、このフラグメントを使用しています。結果オブジェクトが存在する場合
<table th:fragment="resultTable">
<tr>
<th>Talent</th>
<th>Score</th>
</tr>
<tr th:each="talent : ${talents}">
<td th:text="${talent}">Talent</td>
<td th:text="${results.getScore(talent)}">1.0</td>
</tr>
</table>
断片でのみ動作します。それは私には意味がある。したがって、documentationの構文に基づいて、th:if
ステートメントをメインテンプレートファイルに追加しました。私はオブジェクト
Attempted to call method getScore(com.model.Talent) on null context object
せずにテンプレートにアクセスするときしかし、私はまだ、このエラーを取得していth:if
の文がアクセスされているから、そのコードを防ぐべきではないでしょうか。
結果オブジェクトが移入されたときでもテンプレートは正常に動作しますが、テーブルなしでレンダリングするにはどうすればnullケースが得られますか?
フラグメント自体の内部でヌルチェックを追加する方法 –