EL表达式之sessionScope

EL 全名为Expression Language 

EL 语法很简单,它最大的特点就是使用上很方便。接下来介绍EL主要的语法结构: 

${sessionScope.user.sex} 

所有EL都是以${为起始、以}为结尾的。上述EL范例的意思是:从Session的范围中,取得 

用户的性别。假若依照之前JSP Scriptlet的写法如下: 

User user = (User)session.getAttribute("user"); 

String sex = user.getSex( ); 

两者相比较之下,可以发现EL 的语法比传统JSP Scriptlet 更为方便、简洁。 

.与 [ ] 运算符 

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}。因此,如果要动态取值时,就可以用上述的方法来做,但. 无法做到动态取值。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值