EL 提供“.”(點操作)和 [] 兩種運算符來實現數據存取運算。“.”(點操作)和 [] 是等價的,可以相互替換。例如,下面兩者所代表的意思是一樣的。
${sessionScope.user.sex}
等價于
${sesionScope.user["sex"]}
但是,需要保證要取得對象的那個屬性有相應的 setXxx() 和 getXxx() 方法才行。
有時,“.”和 [] 也可以混合使用,例如:
${sessionScope.shoppingCart[0].price}
提示:
注意下面兩種情況,“.”(點操作)和 [] 不能互換。
1. 當要存取的數擇名稱中包含不是字母或數字的特殊字符時,只能使用 []。例如:
${sessionScope.user.["user-sex"]}
不能寫成
${sessionScope.user.usis-sex}
2. 當取得的數據為動態值時,只能使用 []。例如:
${sessionScope.user[param]}
其中,param 是自定義的曼量,其值可以是 user 對象的 name、sex、age 等。