2010-09-28 54 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