|
在EL中,您可以使用 .
運算子來取得JavaBean屬性或Map物件中的值,例如若student是個JavaBean,其上有一個name屬性,則您可以這麼取得該屬性的
值: ${ student.name }
而事實上,您也可以使用[]運算子來取得值,例如: ${ student["name"] }
在EL中,假設table是一個Map物件,則您可以使用 . 運算子並在之後接上鍵值來取得Map中對應的值,例如以title為鍵值來取得對應的值: ${ table.title }
而使用[]運算子也是可以的,例如: ${ table["title"] }
所以歸納來說,使用 . 運算子時,左邊要是個JavaBean或Map物件,而右邊必須是JavaBean的屬性或是Map的鍵值。 而使用[]運算子時,除了左邊要是個JavaBean或Map物件,而右邊必須是JavaBean的屬性或是Map的鍵值之外,還有更進一步的功能,左邊 也可以是java.util.List物件或陣列,而右邊還可以是索引值。 舉個例子來說,如果有個陣列儲存於request之中: String[] names = {"Justin",
"caterpillar", "momor", "Becky"};
request.setAttribute("nameList", names); 您可以在使用EL時,如下使用[]來取得陣列中的值,例如取得索引1位置的值: ${ nameList[1] }
上例會顯示"caterpillar"的字串,更進一步的,EL還會將字串索引值轉換為int型態,例如: ${ nameList["2"] }
上例會顯示"momor"的字串結果。 總結來說,. 與 [] 運算子可以處理JavaBean及Map物件,而[]運算子給您更多的功能,可以處理java.util.List或陣列,如果[]中使用""包括一個數 值,則EL會嘗試將之轉換為int再進行索引存取。 |