代码示例
'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 列表中有三个项目。
问题是,为什么 $objectCreatedInProcessor 将 NULL 设置为 th:each 循环。为什么变量 $objectAddedToModelAndView 没有设为 NULL,并且可以在 th:each 循环中访问?
我做错了什么?有什么我想念的吗?
EDIT1:封闭条件表达式。这不是问题的原因,它只是一个糟糕的代码示例。
EDIT2:封闭类进入结果显示。
EDIT3:忘记提及 $someVars 是从控制器添加到 spring ModelAndView 的变量。