1.EL 全名为Expression Language,提供了在jsp中简化表达式的方法。
2.El使用都是“$”开头,在“{}”中写内容。例如:(1)${"hello world"}输出字符串常量; (2)${str}输出字符串变量str的值;(3)${user.name} 输出user对象的name值,访问对象user的getName()方以得到name成员的值,还可以写成${user["name"]}。
3.在看到第三条示例的时候就可以知道,“[]”和“.”运算符作用类似,以下就讲讲它们的区别:
.与 [ ] 运算符
EL 提供 . 和 [ ] 两种运算符来导航数据。下列两者所代表的意思是一样的:
${sessionScope.user.sex}等于${sessionScope.user["sex"]}
. 和 [ ] 也可以同时混合使用,如下:
${sessionScope.shoppingCart[0].price}
回传结果为shoppingCart中第一项物品的价格。
不过,以下两种情况,两者会有差异:
(1) 当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ],
例如:${user.My-Name }
上述是不正确的方式,应当改为:${user["My-Name"] }
(2) 我们来考虑下列情况:
${sessionScope.user[data]}
此时,data 是一个变量,假若data的值为"sex"时,那上述的例子等于${sessionScope.user.sex};
假若data 的值为"name"时,它就等于${sessionScope.user.name}。
因此,如果要动态取值时,就可以用上述的方法来做,但. 无法做到动态取值。
2.El使用都是“$”开头,在“{}”中写内容。例如:(1)${"hello world"}输出字符串常量; (2)${str}输出字符串变量str的值;(3)${user.name} 输出user对象的name值,访问对象user的getName()方以得到name成员的值,还可以写成${user["name"]}。
3.在看到第三条示例的时候就可以知道,“[]”和“.”运算符作用类似,以下就讲讲它们的区别:
.与 [ ] 运算符
EL 提供 . 和 [ ] 两种运算符来导航数据。下列两者所代表的意思是一样的:
${sessionScope.user.sex}等于${sessionScope.user["sex"]}
. 和 [ ] 也可以同时混合使用,如下:
${sessionScope.shoppingCart[0].price}
回传结果为shoppingCart中第一项物品的价格。
不过,以下两种情况,两者会有差异:
(1) 当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ],
例如:${user.My-Name }
上述是不正确的方式,应当改为:${user["My-Name"] }
(2) 我们来考虑下列情况:
${sessionScope.user[data]}
此时,data 是一个变量,假若data的值为"sex"时,那上述的例子等于${sessionScope.user.sex};
假若data 的值为"name"时,它就等于${sessionScope.user.name}。
因此,如果要动态取值时,就可以用上述的方法来做,但. 无法做到动态取值。