允許在三元運算符中嵌套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"}/>
允許在三元運算符中嵌套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"}/>
你實際上沒有嵌套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}" />
剛剛與嘗試下面的一個
<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 } "/>
謝謝,但大括號在代碼中關閉。問題不在於大括號。 – 2010-09-28 12:23:05
@icarus obj1.attr1.val和obj2.attr1.val之間的單引號是什麼 – 2010-09-28 12:38:31
這應該是一個空白區域。但刪除它也仍然存在問題。 – 2010-09-29 04:49:51
這是我最終採取的方法。顯然,obj1不存在。 – 2010-09-30 04:02:06