Тернарный оператор не работает для хитрого списка данных в HTL?
Я пытаюсь установить список, чтобы быть одним из списка участников из двух разных объектов obj1
а также obj2
и obj1
имеет приоритет над obj2
, Итак, у меня есть следующий код:
data-sly-list=${obj1.someList ? obj1.someList : obj2.someList}
Но когда я запускаю приложение, я получаю ошибку разбора как таковую:
no viable alternative at input '<EOF>' for expression ${obj1.someList?
Насколько я знаю, троичный оператор работает для операторов htl, не относящихся к хитрым данным. Так есть ли работа вокруг этого или я делаю что-то не так?
1 ответ
Если код, который вы разместили, действительно такой, значит, вы пропускаете кавычки:
Ваш код:
data-sly-list=${obj1.someList ? obj1.someList : obj2.someList}
С цитатами:
data-sly-list="${obj1.someList ? obj1.someList : obj2.someList}"
Кроме того, я бы посоветовал вам сделать такую логику в вашей модели слинга. Я знаю, что это заманчиво сделать в HTL, но одна из причин, по которой мы используем языки шаблонов, такие как HTL, заключается в том, чтобы отделить бизнес-логику от наших представлений.
Этот код также не тестируется модульными тестами. Так что есть еще одна веская причина перенести это выражение в вашу модель слинга.