JSP EL中的三元运算符失败

时间:2010-09-28 12:17:15

标签: java jsp jstl el

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

2 个答案:

答案 0 :(得分:2)

你实际上没有嵌套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}" />           

答案 1 :(得分:0)

尝试下面的一个

<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 } "/>