是否允许在三元运算符中嵌套 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 结果连接为字符串。您不能以这种方式在 EL 中连接字符串。最好的办法是使用 c:set
来预设它。
<c:set var="obj1obj2val" value="${obj1.attr1.val} ${obj2.attr1.val}" />
<input value="${empty obj.val ? obj1obj2val : obj3.val}" />
关于java - JSP EL 中的三元运算符失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3812553/