コードサンプル
「someproc」は、ブロードリーフ プラットフォームから org.broadleafcommerce.common.web.dialect.AbstractModelVariableModifierProcessor を拡張するカスタム プロセッサです。
<myproc:someproc /> // as a result is objectCreatedInProcessor
<div th:classappend="${objectCreatedInProcessor==null?'null':'not_null'}></div>
<div th:classappend="${objectAddedToModelAndView==null?'null1':'not_null_1'}></div>
<div th:each="someVar : ${someVars}">
<div th:classappend="${objectCreatedInProcessor==null?'null':'not_null'}></div>
<div th:classappend="${objectAddedToModelAndView==null?'null1':'not_null_1'}></div>
</div>
<div th:classappend="${objectCreatedInProcessor==null?'null':'not_null'}></div>
<div th:classappend="${objectAddedToModelAndView==null?'null1':'not_null_1'}></div>
出力結果は次のようになります。
<div class='not_null'></div>
<div class='not_null_1'></div>
<div>
<div class='null'></div>
<div class='not_null_1'></div>
<div class='null'></div>
<div class='not_null_1'></div>
<div class='null'></div>
<div class='not_null_1'></div>
</div>
<div class='not_null'></div>
<div class='not_null_1'></div>
$someVars リストに 3 つの項目があるとします。
問題は、なぜ $objectCreatedInProcessor beeing が th:each ループに NULL になっているのかということです。そして、変数 $objectAddedToModelAndView が NULL にならず、th:each ループにアクセスできるのはなぜですか?
私が間違っていることは何ですか?何かが恋しいですか?
EDIT1 : 閉じた条件式。これは問題の原因ではなく、単なるコード サンプルの悪さでした。
EDIT2 : 結果表示への閉じたクラス。
EDIT3 : $someVars はコントローラーからスプリング ModelAndView に追加された変数であることに言及するのを忘れました。