目录
EL
EL语法
EL运算符
JSTL
JSTL标签分类
JSP脚本:代码结构混乱、脚本与HTML 混合易出错、代码不易维护。
EL表达式:优化程序代码,增加程序可读性。
EL
EL语法
- EL表达式
 
${ EL 表达式 }
- EL操作符
 
操作符“ . ”
- 获取对象的属性,eg:${ news.title }
 操作符"[ ] "
- 获取对象的属性,eg:${ news["title"]}
 - 获取集合中的对象,eg:${ newsList[0] }
 
EL中严格区分大小写!!!
EL运算符
|   运算符  |   说明  | 
|   ( )  |   改变执行的优先级,例如${3*(4+5)}  | 
|   +,-,*,/,%  |   算术运算符,例如${3+2}  | 
|   ==,!=,>,>=,<,<=  |   关系运算符,例如${a==b}或${a eq b}  | 
|   &&,||,!  |   逻辑运算符,例如${true&&false}  | 
|   ?:  |   条件运算符,例如${a>b?1:2}  | 
|   empty  |   用于检测变量名是否为空,是否等于NULL,例如${empty name}  | 
关系运算符
|   关系运算符  |   范例  |   结果  | 
|   == 或 eq  |   ${5 == 5}或${5 eq 5}  |   true  | 
|   != 或 ne  |   ${5 != 5}或${5 ne 5}  |   false  | 
|   < 或 lt  |   ${3 < 5}或${3 lt 5}  |   true  | 
|   > 或 gt  |   ${3 > 5}或{3 gt 5}  |   false  | 
|   <= 或 le  |   ${3 <= 5}或${3 le 5}  |   true  | 
|   >= 或 ge  |   ${3 >= 5}或${3 ge 5}  |   false  | 
EL功能
- 取得JavaBean对象的属性 
- ${news.title}
 
 - 取得数组、List、Map类型对象的元素 
- ${list[0]}
 
 - 使用各类运算符对原始数据进行简单处理 
- ${totalRecordCount/pageSize}
 
 - 屏蔽一些常见的异常 
- ${username}
 
 - 能实现简单的自动类型转换 
- ${news}相当于(News)request.getAttribute("news")
 
 
EL访问作用域
request.setAttribute("news", news);
两种方式取数据:
使用Java小脚本:request.getAttribute("news");
使用EL表达式: ${ news } 或者 ${ requestScope.news }
|   作用域  |   Java代码取值  |   EL取值  | 
|   请求作用域  |   request.getAttribute("news");  |   ${ requestScope.news }  | 
|   会话作用域  |   session.getAttribute("username");  |   ${ sessionScope.username }  | 
|   程序作用域  |   application.getAttribute("count");  |   ${ applicationScope.count }  | 
|   页面作用域  |   pageContext.getAttribute("userNum");  |   ${ pageScope.userNum }  | 
JSTL
- JSP标准标签库
 - 实现JSP页面中的逻辑控制
 
使用步骤
- 下载jstl.jar和standard.jar包 
- http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
 
 - 将这两个包复制到WEB-INF\lib目录
 - 在JSP页面中添加指令 
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 
 
JSTL标签分类
|   标签库名称  |   资源标示符(uri)  |   前缀(prefix)  | 
|   核心标签库  |   http://java.sun.com/jsp/jstl/core  |   c  | 
|   国际化/格式化标签库  |   http://java.sun.com/jsp/jstl/fmt  |   fmt  | 
|   XML标签库  |   http://java.sun.com/jsp/jstl/xml  |   x  | 
|   数据库标签库  |   http://java.sun.com/jsp/jstl/sql  |   sql  | 
|   函数标签库  |   http://java.sun.com/jsp/jstl/functions  |   fn  | 
核心标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
国际化 / 格式化标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<c:out/>标签
<c:out value="value" default="default" escapeXml="true|false" />
设置变量
<c:set var="name" value= "value" scope="" />
设置对象属性
<c:set value= "value" target="target" property="propertyName" />
<c:forEach/>标签:实现对集合的遍历
<c:forEach var="varName" items="items" varStatus="varStatus">
……
</c:forEach>
<c:if/>标签:实现条件的判断
<c:if test="condition" var="varName" scope="scope">
……
</c:if>
使用JSTL构建URL:
<c:url/>超链接标签
<c:url value="url" />
<c:param/>参数标签
<c:param name="name" value="value"/>
<c:import/>导入标签
<c:import url="URL" />
<fmt:formatDate/>标签:实现格式化的日期和时间显示
<fmt:formatDate value="date" pattern="yyyy-MM-dd HH:mm:ss"/>
|   标签名称  |   作用  | 
|   <c:out />  |   输出文本内容到out对象,常用于显示特殊字符,显示默认值  | 
|   <c:set/>  |   在作用域中设置变量或对象属性的值  | 
|   <c:remove/>  |   在作用域中移除变量的值  | 
|   <c:if/>  |   实现条件判断结构  | 
|   <c:forEach/>  |   实现循环结构  | 
|   <c:url/>  |   构造url地址  | 
|   <c:param/>  |   在url后附加参数  | 
|   <c:import/>  |   在页面中嵌入另一个资源内容  | 
|   <fmt:formatDate/>  |   格式化时间  | 
|   <fmt:formatNumber/>  |   格式化数字  |