使用th:each时,从extednd broadleaf处理器创建的Thymeleaf对象变为null,并且只能访问:每个

时间:2013-08-30 15:29:38

标签: spring-mvc thymeleaf broadleaf-commerce

代码示例

'someproc'是一个自定义处理器,它扩展了来自broadleaf平台的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。为什么变量$ objectAddedToModelAndView不是NULL,并且可以访问:每个循环?

我做错了什么?是我想念的东西吗?

EDIT1 :已关闭的条件表达式。这不是问题的原因,它只是一个糟糕的代码样本。

EDIT2 :结果显示已关闭的课程。

EDIT3 :Forogot提到$ someVars是一个从控制器添加到SpringAndView弹簧的变量。

1 个答案:

答案 0 :(得分:0)

好像你没有正确关闭三元函数的条件。在null之后和之前添加一个}在每一行。

以下是来自docs的参考

的示例三元组
'User is of type ' + (${user.isAdmin()} ? 'Administrator' : (${user.type} ?: 'Unknown'))