没有合适的资源?快使用搜索试试~ 我知道了~
通过此文档,你可以熟练掌握EL表达式规范,到达熟练使用的目的。
资源推荐
资源详情
资源评论
www.ibwen.com 爱博文 提供海量资料满足您的求知欲!
本站所有资源部分转载自互联网!版权归作者所有
EL 表达式详解
EL 表达式
1、EL 简介
1)语法结构
${expression}
2)[]与.运算符
EL 提供.和[]两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符
号,就一定要使用 []。
例如:
${user.My-Name}应当改为${user["My-Name"] }
如果要动态取值时,就可以用[]来做,而.无法做到动态取值。例如:
${sessionScope.user[data]}中 data 是一个变量
3)变量
EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某
一范围中名称为
username 的变量。
因为我们并没有指定哪一个范围的 username,所以它会依序从 Page、
Request、Session、
Application 范围查找。
假如途中找到 username,就直接回传,不再继续找下去,但是假如全部的
范围都没有找到时,
就回传 null。
属性范围在 EL 中的名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
4) 1--EL 表达式用${}表示,可用在所有的 HTML 和 JSP 标签中作用是代替 JSP 页
面中复杂的 JAVA 代码.
2--EL 表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有${param}和
${paramValues}.
${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求
参数的一组
值.pageScope 表示页面范围的变量.requestScope 表示请求对象的变量.
sessionScope 表示会话
范围内的变量.applicationScope 表示应用范围的变量.
3 --<%@ page isELIgnored="true"%> 表示是否禁用 EL 语言,TRUE 表示禁
止.FALSE 表示不禁
止.JSP2.0 中默认的启用 EL 语言.
www.ibwen.com 爱博文 提供海量资料满足您的求知欲!
本站所有资源部分转载自互联网!版权归作者所有
4-- EL 语言可显示 逻辑表达式如${true and false}结果是
false 关系表达式如${5>6} 结
果是 false 算术表达式如 ${5+5} 结果是 10
5--EL 中的变量搜索范围是:page request session
application 点运算符(.)和"[ ]"都是
表示获取变量的值.区别是[ ]可以显示非词类的变量
2、EL 隐含对象
1)与范围有关的隐含对象
与范围有关的 EL 隐含对象包含以下四个:pageScope、requestScope、
sessionScope 和
applicationScope;
它们基本上就和 JSP 的 pageContext、request、 session 和 application 一样;
在 EL 中,这四个隐含对象只能用来取得范围属性值,即 getAttribute(String
name),却不能取得
其他相关信息。
例如:我们要取得 session 中储存一个属性 username 的值, 可以利用下列方法:
session.getAttribute("username") 取得 username 的值,
在 EL 中则使用下列方法
${sessionScope.username}
2)与输入有关的隐含对象
与输入有关的隐含对象有两个:param 和 paramValues,它 们是 EL 中比较特别
的隐含对象。
例如我们要取得用户的请求参数时,可以利用下列方法:
request.getParameter(String name)
request.getParameterValues(String name)
在 EL 中则可以使用 param 和 paramValues 两者来取得数 据。
${param.name}
${paramValues.name}
3.其他隐含对象
1)cookie
JSTL 并没有提供设定 cookie 的动作,
例:要取得 cookie 中有一个设定名称为 userCountry 的 值,可以使用
${cookie.userCountry} 来
取得它。
2)header 和 headerValues
header 储存用户浏览器和服务端用来沟通的数据
例:要取得用户浏览器的版本,可以使用${header["User- Agent"]}。
另外在鲜少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用
headerValues 来取得
这些值。
3)initParam
www.ibwen.com 爱博文 提供海量资料满足您的求知欲!
本站所有资源部分转载自互联网!版权归作者所有
initParam 取得设定 web 站点的环境参数(Context)
例:一般的方法 String userid =
(String)application.getInitParameter("userid");
可以使用 ${initParam.userid}来取得名称为 userid
4)pageContext
pageContext 取得其他有关用户要求或页面的详细信息。
${pageContext.request.queryString} 取得请求的参数字符串
${pageContext.request.requestURL} 取得请求的 URL,但不包
括请求之参数字符串
${pageContext.request.contextPath} 服务的 web application
的名称
${pageContext.request.method} 取得 HTTP 的方法(GET、
POST)
${pageContext.request.protocol} 取得使用的协议(HTTP/1.1、
HTTP/1.0)
${pageContext.request.remoteUser} 取得用户名称
${pageContext.request.remoteAddr } 取得用户的 IP 地址
${pageContext.session.new} 判断 session 是否为新的
${pageContext.session.id} 取得 session 的 ID
${pageContext.servletContext.serverInfo} 取得主机端的服务信息
4) 条件标签>
1.算术运算符有五个:+、-、*或$、/或 div、%或 mod
2.关系运算符有六个:==或 eq、!=或 ne、<或 lt、& gt;或 gt、<=或 le、>=或
ge
3.逻辑运算符有三个:&&或 and、||或 or、! 或 not
4.其它运算符有三个:Empty 运算符、条件运算符、()运算符
例:${empty param.name}、${A?B:C}、${A*(B+C)}
5) EL 函数(functions)
语法:ns:function( arg1, arg2, arg3 „. argN)
其中 ns 为前置名称(prefix),它必须和 taglib 指令的前置名称一置
6) 补充:
<%@ taglib prefix="c"
http://java.sun.com/jstl/core_rt">http://java.sun.com/jstl/core_rt" %>
FOREACH:
<c:forEach items="${messages}"
var="item"
begin="0"
end="9"
step="1"
varStatus="var">
„„
</c:forEach>
OUT:
剩余11页未读,继续阅读
资源评论
df200706067
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功