是否允许在三元运算符中嵌套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}" />