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 等。