EL与JSPL
Posted zeng1997
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL与JSPL相关的知识,希望对你有一定的参考价值。
一、EL
EL语法:
EL表达式(Expression Language)
$EL表达式 例:$name
EL操作符:
"." : 获取对象的属性,例:$user.name
"[ ]" :1、 获取对象的属性,例:$user[name]
2、获取集合中的对象,例如:$list[0]
EL运算符:
关系运算符:
EL的功能:
1、获取javaBean对象的属性
例:$user.name
2、取得数组、list、map类型对象的元素
例:$list[0]
3、使用各类运算符对原始数据进行简单的处理
例:
request.setAttribute("num1",10);
request.setAttribute("num2",5);
$num1/num2
结果为:2.0
注:不能写成$num1/$num2,运算符号需放在大括号里面
4、屏蔽一些常见的异常
例:$user.name 即使user为空,也不会出现异常,但是什么信息都没显示
5、能实现简单的自动类型转换
例:$user相当与 (User)request.getAttribute("news");
EL访问作用域:
request.setAttribute("user",user);
有两种取出方式
1、使用java代码
<%User user = (User)request.getAttribute("user");%>
2、使用EL表达式
$user 或 $requestScope.user
二、JSTL(JavaServerPages Standard Tag Library)
JSP标准标签库
实现JSP页面中的逻辑控制
JSTL使用步骤:
1、下载jstl.jar和standard.jar包
下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
2、将这两个包复制到WEB-INF/lib目录下
3、在jsp页面中添加如下指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
如图:
JSTL标签分类
核心标签库:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
国际化/格式化标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<c:if>标签
1. 语法格式:( [ ] 中属性可写可不写 )
<c:if test="xxx" [var="xxx"] [scope="page|request|session|application"] >
执行体
</c:if>
2. 标签属性讲解:
test属性:用于设置逻辑表达式,当逻辑表达式为true时执行执行体
var属性:用于指定逻辑表达式中变量的名字
scope属性:用于指定var变量的作用范围,默认值是page。
3.用法案例:
<c:if test="$!empty user" >
$user.name
</c:if>
<c:forEach>标签
两种语法格式:
1.迭代集合对象:
<c:forEach items="xxx" [var="xxx"] [varStatus="xxx"] [begin="xxx"] [end="xxx"] [step="xxx"]>
循环体.....
</c:forEach>
例:
<%String[] strs = new String[15];
for (int i = 0; i < strs.length; i++)
strs[i]="吖"+i;
request.setAttribute("s",strs);
%>
<c:forEach items="$s" var="str" varStatus="vs">
$str $vs.count<br/>
</c:forEach>
2.迭代数组:
<c:forEach begin="xxx" end="xxx" [var="xxx"] [varStatus="xxx"] [step="xxx"]>
循环体....
</c:forEach>
例:
<%String[] strs = new String[15];
for (int i = 0; i < strs.length; i++)
strs[i]="吖"+i;
request.setAttribute("s",strs);
%>
<c:forEach begin="0" end="15" var="i" varStatus="index" step="1">
$s[i]<br/>
</c:forEach>
标签属性讲解:
1.items属性用于指定将要迭代的对象( 数组或集合 )
2.var属性用于指 将当前迭代到的元素保存到page域中的名称(可以通过$xxx获得对象)
3.varStatus属性用于指定当前迭代状态信息的对象保存到page域中的名称
varStatus属性可以获取以下信息:
count:表示元素在集合中的序号,从1开始
index:表示当前元素在集合中的索引,从0开始
first:表示当前是否为集合中的第一个元素
last:表示当前元素是否为集合中最后一个元素
4.begin属性用于指定从集合中的第几个元素开始迭代,begin的索引值从0开始
5.step属性用于指定迭代的步长,即迭代的增长因子(for循环的自增或自减值)
其他标签:
以上是关于EL与JSPL的主要内容,如果未能解决你的问题,请参考以下文章