EL表达式,EL特点,语法,运算符,EL隐式对象,JSTL标准标签库介绍
来源:互联网 发布:国际数据公司招聘 编辑:程序博客网 时间:2024/05/15 01:51
为什么需要EL:
JavaBean在JSP中的局限
获取JavaBean属性必须要实例化
强制类型转化
<%
Employee employee = (Employee)request.getAttribute("employee");
Computer comp = employee.getComputer();
String manufacturer = comp.getManufacturer();
%>
如果页面编写出现逻辑错误,将会导致代码执行错误,并且JSP页面编译页面时也会产生错误
解决办法: 使用EL表达式简化
什么是EL表达式:
什么是EL
EL即Expression Language(表达式语言)
EL的功能
替代JSP页面中的复杂代码
EL的语法
${ EL exprission }
${ bean.name } 或 ${ bean['name'] }
${bean.name}实质是调用bean的getName()方法
EL的特点:
自动转换类型
EL得到某个数据时可以自动转换类型
对于类型的限制更加宽松
使用简单
相比较在JSP中嵌入Java代码,EL应用更简单
EL的语法:
EL语法
以“${”作为开始,以“}”作为结束
直接使用变量名获取值$
${ username }
变量属性范围名称
page pageScope,例如${pageScope.username},表示在page范围内查找username变量,找不到返回Null
request requstScope
session sessionScope
application applicationScope
EL中的运算符
EL运算符
运算符”[ ]”
运算符”.”
作用:
获取对象属性 ${user.name}==${user[name]}
获取对象集合中的数据:
在Session中保存了一个(list)集合users
${sessionScope.user[1]}------------得到集合中第二位的对象
EL表达式的简单应用:
<%
Map names = new HashMap();
names.put("one","LiYang");
names.put("two","WangHua");
request.setAttribute("names",names);
%>
姓名:${names.one}<br/>
姓名:${names["two"] }<br/>
EL隐式对象:
作用域访问对象: pageScope ,requestScope, sessionScope ,applicationScope
参数访问对象: param paramValues
Jsp隐式对象:pageContext
EL隐式对象介绍
pageScope 返回页面范围的变量名,这些名称已映射至相应的值
requestScope 返回请求范围的变量名,这些名称已映射至相应的值
sessionScope 返回会话范围的变量名,这些名称已映射至相应的值
applicationScope 返回应用范围内的变量,并将变量名映射至相应的值
param 返回客户端的请求参数的字符串值
paramValues 返回映射至客户端的请求参数的一组值
pageContext 提供对用户请求和页面信息的访问
为什么使用JSTL:
分析:虽然EL表达式可以访问JavaBean的属性,但是并不能实现在JSP中进行逻辑判断,因而要使用JSTL标签。
什么是JSTL:
使用JSTL实现JSP页面中逻辑处理
什么是JSTL
JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
JSTL的优点:1.提供一组标准标签
2.可用于编写各种动态JSP页面
JSTL通常会与EL表达式合作实现JSP页面的编码
JSTL标准标签库介绍:
JSTL标准标签库内的标签:
通用标签(set remove out)
条件标签(if)
迭代标签 (forEach)
通用标签的使用:
set:设置指定范围内的变量值
out:计算表达式并将结果输出显示
remove:删除指定范围内的变量
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<body>
<c:set var= "example" value="${100+1}" scope="session" />
<c:out value="${example}"/>
<c:remove var= "example" scope="session"/>
</body>
<body>
<!-- 设置之前应该是空值 -->
设置变量之前的值是:msg=<c:out value="${msg}" default="null"/>
<!-- 给变量msg设值 -->
<c:set var="msg" value="Hello ACCP!" scope="page"></c:set>
<!-- 此时msg的值应该是上面设置的"已经不是空值了" -->
设置新值以后:msg=<c:out value="${msg}"></c:out><br>
<!-- 把 msg变量从page范围内移除-->
<c:remove var="msg" scope="page"/>
<!-- 此时msg的值应该显示null -->
移除变量msg以后:msg=<c:out value="${msg}“ default="null">
</c:out>
</body>
条件标签的使用
if:if标签用于判断条件是否成,与Java中的If语句做用用相同
语法
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:if test="codition" var="name" scope="applicationArea" >
…
</c:if>
test: 判断条件表达式 返回true/false
var: 变量名用于保存返回的true/false
scope: 指定var变量的作用域
<body>
<c:set var="isLogin" value="${not empty sessionScope.userId}"/>
<c:if test="${not login}">
…登录表单
</form>
</c:if>
<c:if test="${isLogin}">
已经登录!
</c:if>
</body>
迭代标签
实现对集合中对象的遍历
语法
<c:forEach items=collection var=name begin=start end=end step=count>
…循环体代码…
</forEach>
items: items指定要遍历的集合对象
var: var指定集合内数据的变量名称
step指定迭代的增量
begin指定从集合的第几位开始
end指定迭代到集合的第几位结束
forEach是for循环语句的变体,实现集合对象(可以是list、数组等)的处理
指定迭代的次数
<c:forEach var="varName" varStatus="vatStatusName" begin="start" end="end" step="count">
…循环体代码…
</forEach>
var指定集合内数据的变量名称
varStatus指定var成员的信息
迭代标签的应用:
<%
List products = GoodsDao.getAllProducts();
request.setAttribute("products", products);
%>
…
<!-- 循环输出商品信息 -->
<c:forEach var="product" items="${requestScope.products}" varStatus="status">
<!-- 如果是偶数行,为该行换背景颜色 -->
<tr <c:if test="${status.index % 2 == 1 }">style="background-color:rgb(219,241,212);"</c:if>>
<td>${product.name }</td>
<td>${product.area }</td>
<td>${product.price }</td>
</tr>
</c:forEach>
- EL表达式,EL特点,语法,运算符,EL隐式对象,JSTL标准标签库介绍
- EL表达式/ JSTL标准标签库
- EL表达式和JSTL标准标签库
- jsp,el表达式,jstl标准标签库
- Javaweb--- EL表达式 JSTL标准标签库
- EL表达式、JSTL标签库
- JSTL标签库+EL表达式
- EL表达式 & JSTL标签
- EL表达式...jstl标签
- EL表达式、JSTL标签
- EL表达式、Jstl标签
- EL运算表达式和JSTL标签
- JSTL标签库介绍及EL表达式语言介绍
- EL表达式、基本语法、隐式对象,禁用EL表达式,EL主要作用
- EL表达式、基本语法、隐式对象,禁用EL表达式,EL主要作用
- EL表达式、基本语法、隐式对象,禁用EL表达式,EL主要作用
- 第六章EL和JSTL> 3-el表达式运算符
- [好文章]JSTL详解--Core 标签库介绍,EL表达式
- Minigui学习--画不同图形
- OCP-1Z0-052-V8.02-91题
- Recently
- 用于获取文件流
- 轻松搞定面试中的二叉树题目
- EL表达式,EL特点,语法,运算符,EL隐式对象,JSTL标准标签库介绍
- js中的正则表达式(3)
- 大数据量,海量数据量处理方法
- Linux磁盘与文件系统
- 【从电脑向ipad传电影(精文荟萃)】
- 四大流行的java连接池之BoneCP篇
- IIS7 配置 PHP5.5
- 【代码】Android 开发 Open GL ES 绘制 3D 图形
- linux档案权限与目录配置