我正在尝试将列表设置为来自两个不同对象obj1
和obj2
的成员列表,并且obj1
优先于obj2
。
所以我有以下代码:
data-sly-list=${obj1.someList ? obj1.someList : obj2.someList}
但是当我运行应用程序时,我得到一个解析错误:
no viable alternative at input '<EOF>' for expression ${obj1.someList?
据我所知,三元运算符适用于非数据狡猾列表的htl语句。那么有没有解决这个问题,或者我做错了什么?
答案 0 :(得分:3)
如果您发布的代码确实如此,您似乎缺少引号:
您的代码:
data-sly-list=${obj1.someList ? obj1.someList : obj2.someList}
引用:
data-sly-list="${obj1.someList ? obj1.someList : obj2.someList}"
另外我建议你在你的吊带模型中做这样的逻辑。我知道在HTL中这样做是很诱人的,但我们使用像HTL这样的模板语言的原因之一是将业务逻辑与我们的观点分离。
此代码也无法通过单元测试进行测试。因此,有另一个很好的理由将此表达式移动到您的Sling模型中。