2013-08-30 3 views
0

КодThymeleaf объект, созданный из extednd процессора широколиственных производится нуль при использовании й: каждый и является доступным только находящиеся й: каждый образец

«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 beeing сделал NULL в th: каждый цикл. И почему переменная $ objectAddedToModelAndView не сделана NULL и доступна в th: каждый цикл?

Что я делаю неправильно? Что-то я пропустил?

EDIT1: Закрытое условное выражение. Это не было причиной проблемы, это был всего лишь пример плохого кода.

EDIT2: Закрытые классы в отображении результатов.

EDIT3: Forogot упомянуть, что $ someVars - это переменная, добавленная с контроллера в Spring ModelAndView.

ответ

0

Похоже, что вы не закрываете условные обозначения на своих тернарных функциях. Добавить} после нулевого и перед? на каждой линии.

Вот пример тройной из docs для справки

'User is of type ' + (${user.isAdmin()} ? 'Administrator' : (${user.type} ?: 'Unknown')) 
+0

Спасибо за ответ, но пример был написан без тестируются, но проблема не существует. Проблема состоит в том, что у нас есть два типа переменных: один, который создается в контроллере Spring и добавлен в объект ModelAndView (objectAddedToModelAndView) (который не равен null в th: каждый) и тот, который добавляется в Процессор с помощью метода org.broadleafcommerce .common.web.dialect.AbstractModelVariableModifierProcessor # addToModel (objectCreatedInProcessor), который превращается в null в th: каждый цикл. –