EL表达式的用法与内置对象

EL表达式的用法与内置对象

 一、用法 

    EL表达式是配合JSTL使用的。你需要引入JSTL标签库(<c:forEach items=""></c:forEach>,<c:if test=""></c:if>等属于jstl表达式)

<%@taglib uri=" jsp标签的命名空间 " prefix="c"%>

    EL表达式中的标识符命名规则:

1、不能以数字开头

2、不能是EL的保留字:and、or、gt等

3、不能是EL隐式对象

4、不能包含单引号、双引号、减号和正下滑线

    .与 [ ] 运算符

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

因此,如果要动态取值时,就可以用上述的方法来做,但无法做到动态取值。

    EL 变量

EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它的默认值会先从Page 范围找,假如找不到,再依序到Request、Session、Application范围。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null,当然EL表达式还会做出优化,页面上显示空白,而不是打印输出NULL。

    EL表达式自动转换类型:接收到的类型都会自动转换为String

    EL 隐含对象:JSP有9个隐含对象,而EL也有自己的隐含对象。EL隐含对象总共有11 个

隐含对象类型说明
PageContextjavax.servlet.ServletContext表示此JSP的PageContext
PageScopejava.util.Map取得Page范围的属性名称所对应的值
RequestScopejava.util.Map取得Request范围的属性名称所对应的值
sessionScopejava.util.Map取得Session范围的属性名称所对应的值
applicationScopejava.util.Map取得Application范围的属性名称所对应的值
paramjava.util.Map如同ServletRequest.getParameter(String name)。回传String类型的值
paramValuesjava.util.Map如同ServletRequest.getParameterValues(String name)。回传String[]类型的值
headerjava.util.Map如同ServletRequest.getHeader(String name)。回传String类型的值
headerValuesjava.util.Map如同ServletRequest.getHeaders(String name)。回传String[]类型的值
cookiejava.util.Map如同HttpServletRequest.getCookies()
initParamjava.util.Map如同ServletContext.getInitParameter(String name)。回传String类型的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值