EL表达式
2015-08-09 11:46
323 查看
•EL 语法很简单,它最大的特点就是使用上很方便。
•${sessionScope.user.sex}
•所有EL都是以 ${ 为起始、以} 为结尾的。上述EL范例的意思是:从Session的范围中,取得
•用户的性别。假若依照之前JSP Scriptlet的写法如下:
•User user = (User)session.getAttribute("user");
•String sex = user.getSex( );
•EL 提供 . 和 [ ] 两种运算符来存取数据。下列两者所代表的意思是一样的
•${sessionScope.user.sex} 等于
•${sessionScope.user["sex"]}
•. 和 [ ] 也可以同时混合使用,如下:
•${sessionScope.shoppingCart[0].price}
•回传结果为shoppingCart中第一项物品的价格。
•(1) 当要存取的属性名称中包含一些特殊字符,如 . 或 – 等并非字母或数字的符号,就一定要使用 [ ],例如:
•${user.My-Name }
•上述是不正确的方式,应当改为:
•${user["My-Name"] }
•${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 除了提供方便存取变量的语法之外,它另外一个方便的功能就是:自动转变类型
•${param.count + 20}
•会将传来的count自动转化为数值
EL保留字
EL隐含对象
与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope,它们基本上就和JSP的pageContext、request、session和application一样,不过必须注意的是,这四个隐含对象只能用来取得范围属性值,即JSP中的getAttribute(String name),却不能取得其他相关信息,例如:JSP中的request对象除可以存取属性之外,还可以取得用户的请求参数或表头信息等等。但是在EL中,它就只能单纯用来取得对应范围的属性值,例如:我们要在session
中储存一个属性,它的名称为username,在JSP 中使用session.getAttribute(“username”) 来取得username 的值, 但是在EL 中, 则是使用
${sessionScope.username}来取得其值的
•${param.name}
•${paramValues.name}
•这里param 的功能和request.getParameter(String name) 相同, 而paramValues 和
•request.getParameterValues(String name)相同。如果用户填了一个表格,表格名称为username,则我们就可以使用${param.username}来取得用户填入的值
我们可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息
•${sessionScope.user.sex}
•所有EL都是以 ${ 为起始、以} 为结尾的。上述EL范例的意思是:从Session的范围中,取得
•用户的性别。假若依照之前JSP Scriptlet的写法如下:
•User user = (User)session.getAttribute("user");
•String sex = user.getSex( );
•EL 提供 . 和 [ ] 两种运算符来存取数据。下列两者所代表的意思是一样的
•${sessionScope.user.sex} 等于
•${sessionScope.user["sex"]}
•. 和 [ ] 也可以同时混合使用,如下:
•${sessionScope.shoppingCart[0].price}
•回传结果为shoppingCart中第一项物品的价格。
•(1) 当要存取的属性名称中包含一些特殊字符,如 . 或 – 等并非字母或数字的符号,就一定要使用 [ ],例如:
•${user.My-Name }
•上述是不正确的方式,应当改为:
•${user["My-Name"] }
•${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 除了提供方便存取变量的语法之外,它另外一个方便的功能就是:自动转变类型
•${param.count + 20}
•会将传来的count自动转化为数值
EL保留字
EL隐含对象
与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope,它们基本上就和JSP的pageContext、request、session和application一样,不过必须注意的是,这四个隐含对象只能用来取得范围属性值,即JSP中的getAttribute(String name),却不能取得其他相关信息,例如:JSP中的request对象除可以存取属性之外,还可以取得用户的请求参数或表头信息等等。但是在EL中,它就只能单纯用来取得对应范围的属性值,例如:我们要在session
中储存一个属性,它的名称为username,在JSP 中使用session.getAttribute(“username”) 来取得username 的值, 但是在EL 中, 则是使用
${sessionScope.username}来取得其值的
•${param.name}
•${paramValues.name}
•这里param 的功能和request.getParameter(String name) 相同, 而paramValues 和
•request.getParameterValues(String name)相同。如果用户填了一个表格,表格名称为username,则我们就可以使用${param.username}来取得用户填入的值
我们可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息
相关文章推荐
- 异步流程控制:7 行代码学会 co 模块
- [译] React 入门
- 解决jsp开发中不支持EL问题
- 在JSTL EL中处理java.util.Map,及嵌套List的情况
- java el简介及用法
- 前端必备神器 Snap.svg 弹动效果
- el表达式 写入bootstrap表格数据页面的实例代码
- 一张Web前端的思维导图分享
- 解析Tomcat 6、7在EL表达式解析时存在的一个Bug
- 浅谈AngularJS--基础
- 浅谈AngularJS--域变量(scope)
- AngularJS' Internals In Depth(深入理解 AngularJS)
- 3ff8 javascript 获取Flash下载进度兼容IE, FireFox,Chrome浏览器
- Pongo网页版JavaScript源代码及设计思路
- 拟物设计和Angular的实现 - Material Design (持续更新)
- 小明版前端工程师装x和面试指南
- 泡WeX5论坛,就能把钱给挣了! WeX5论坛 金币制启动 -- 让大家帮助大家,让知识变成收益
- EL语法