目录
Expression Language表达式语言,用于简化JSP页面内的Java代码主要功能:获取数据
语法:
${expression}
获取域中存储的key为brands的数据
1、操作符“.”
获取对象的属性,例如:${news.title}
2、操作符“[ ]”
获取对象的属性,例如:${news["title"]}
获取集合中的对象,例如:${newsList[0]}
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 |
取得JavaBean对象的属性
${news.title}
取得数组、List、Map类型对象的元素
${list[0]}
使用各类运算符对原始数据进行简单处理
${totalRecordCount/pageSize}
屏蔽一些常见的异常
${username}
能实现简单的自动类型转换
${news}相当于(News)request.getAttribute("news")
两种方式取数据:
使用Java小脚本:request.getAttribute("news");
使用EL表达式:${ news } 或者 ${ requestScope.news }
JavaWeb中的四大域对象:
作用域 | Java代码取值 | EL取值 |
请求作用域 | request.getAttribute("news"); | ${ requestScope.news } |
会话作用域 | session.getAttribute("username"); | ${ sessionScope.username } |
程序作用域 | application.getAttribute("count"); | ${ applicationScope.count } |
页面作用域 | pageContext.getAttribute("userNum"); | ${ pageScope.userNum } |
el表达式获取数据,会依次从这4个域中寻找,直到找到为止
JSP标准标签库(Jsp Standarded Tag Library),使用标签取代JSP页面上的Java代码
1、下载jstl.jar和standard.jar包
2、将这两个包复制到WEB-INF\lib目录
3、在JSP页面中添加指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
标签库 | 资源标识符 | 前缀 |
核心标签库 | 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" %>
语法:
- value="value":需要输出显示的表达式
- default="default":默认输出显示的值
- escapeXml="true|false":是否对输出的内容进行转义
-
- <c:out value="value" default="default" escapeXml="true|false" />
设置变量
- var="name" :表示变量名称
- value= "value":表示变量的值
- scope="scope":存在的作用域
-
- <c:set var="name" value= "value" scope="scope" />
设置对象属性
- value= "value":表示属性的值
- target="target":表示对象
- property="propertyName":表示对象的属性名称
-
- <c:set value= "value" target="target" property="propertyName" />
<c:forEach/>迭代标签:实现对集合的遍历
- var="varName":集合中元素的名称
- items="items":集合对象
- varStatus="varStatus":当前循环的状态信息,例如循环的索引号
-
- <c:forEach var="varName" items="items" varStatus="varStatus">
- ……
- </c:forEach>
<c:if/>条件标签:实现条件的判断
- var="varName":判断的结果
- scope="scope":判断结果存放的作用域
-
- <c:if test="condition" var="varName" scope="scope">
- ……
- </c:if>
使用JSTL构建URL
<c:url/>超链接标签
<c:url value="url" />
<c:param/>参数标签
- name="name":参数的名称
- value="value":参数的值
-
- <c:param name="name" value="value"/>
<c:import/>导入标签
- url="URL":导入资源的路径
-
- <c:import url="URL" />
<fmt:formatDate/>格式化标签:实现格式化的日期和时间显示
- value="date":时间对象
- pattern="yyyy-MM-dd HH:mm:ss":显示格式
-
- <fmt:formatDate value="date" pattern="yyyy-MM-dd HH:mm:ss"/>
标签名 | 作用 |
| 输出文本内容到out对象,常用于显示特殊字符,显示默认值 |
| 在作用域中设置变量或对象属性的值 |
| 在作用域中移除变量的值 |
| 实现条件判断结构 |
| 实现循环结构 |
| 构造url地址 |
| 在url后附加参数 |
| 在页面中嵌入另一个资源内容 |
<fmt:formatDate/> | 格式化时间 |
<fmt:formatNumber/> | 格式化数字 |