2010-09-28 57 views
1

允许在三元运算符中嵌套EL表达式吗?JSP 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

你实际上没有嵌套EL表达式(嵌套会是什么样子${foo${bar}baz}这实际上是不可能的)。您正试图将EL结果连接为字符串。你不能以这种方式连接字符串中的字符串。您最好的选择是使用c:set进行预设。

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

这是我最终采取的方法。显然,obj1不存在。 – 2010-09-30 04:02:06

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

谢谢,但大括号在代码中关闭。问题不在于大括号。 – 2010-09-28 12:23:05

+0

@icarus obj1.attr1.val和obj2.attr1.val之间的单引号是什么 – 2010-09-28 12:38:31

+0

这应该是一个空白区域。但删除它也仍然存在问题。 – 2010-09-29 04:49:51