EL
1、什么是EL?
EL( Expression Language意思为表达式语言,可以获取域对象中的数据,我们之前在JSP中写java代码必须写在<%%>里面。并且取值代码比较繁琐,它提供了在JsP中简化表达式的方法,让Jsp的代码更加简化。
语法: ${表达式}
2、数据获取
EL根据作用域范围依次获取,越小越先获取
域的范围由小到大:page < request < session < application
${pageScope.name}
${requestScope.name}
${sessionScope.name}
${applicationScope.name}
3、运算符
1. el中写算术运算符
4 + 5 = ${4 + 5}
2. 逻辑运算符 and or && || not !
3. 关系型
==, eq
>=, ge
<=, le
!=, ne
4. 非空判断
<%
List<String> list = new ArrayList<>();
list.add("aaaa");
pageContext.setAttribute("list", list);
%>
${empty list} => 判断集合是否有数据
=> 其他普通对象判断是否被实例化
${list}
5.三元运算符: ${true? "yes" : "no"}
4、常用隐藏对象
JSTL
1、什么是JSTL?
JSTL(Java server pages standarded tag library,即JSP标准标签库)开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。
如果要使用JSTL,则必须引用jstl.jar和 standard.jar两个包。
2、标签库分类
core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。
format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行JSP页面的国际化。
xml 库包含一些标记,这些标记用来操作通过XML表示的数据,而 sql 库定义了用来查询关系数据库的操作。
两个 JSTL 标记库验证器允许开发人员在其 JSP 应用程序中强制使用编码标准。
3、3c标签的使用
引入标签库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/xml” prefix=“x”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/sql” prefix=“sql”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/functions” prefix=“fn”%>
<%--1.往request域中存放名称为uname值为admin的数据--%>
<c:set scope="request" var="uname" value="admin"></c:set>
<%--2. 获取数据--%>
<c:out value="${uname}"></c:out>
${uname}
# 3 删除数据
<c:remove var="uname" scope="request"></c:remove>
# 4. 判断
<c:set scope="page" var="uname" value="wy"></c:set>
<c:if test="${pageScope.name eq 'wy'}">
<h1>是wy</h1>
</c:if>
# 多重判断
<c:set scope="request" var="age" value="20"></c:set>
<c:choose>
<c:when test="${age<18}">未成年</c:when>
<c:when test="${age>=18 and age<=30}">青年</c:when>
<c:when test="${age>30 and age<=50}">中年</c:when>
<c:otherwise>老年</c:otherwise>
</c:choose>
<--!>
items 索引对象
var 当前遍历到的内容存储到va
varStatus 当前索引值
</--!>
<c:forEach items="" var="" varStatus="index">
</c:forEach>