在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再进行索引存取。 |