是否允许在三元运算符中嵌套EL表达式?

以下表达式有什么问题?

<input class="text_field" type="text" name="receivedBy" id="receivedBy" style="width:250px;"  maxlength="64" value="${empty obj.val ? obj1.attr1.val ' ' obj2.attr1.val: obj3.val"}/>

最佳答案

您实际上不是在嵌套EL表达式(嵌套看起来像${foo${bar}baz},实际上是不可能的)。您正在尝试将EL结果连接为String。您不能以这种方式在EL中连接字符串。最好的选择是使用c:set对其进行预设。

<c:set var="obj1obj2val" value="${obj1.attr1.val} ${obj2.attr1.val}" />
<input value="${empty obj.val ? obj1obj2val : obj3.val}" />

07-24 18:48
查看更多