EL
可以看做是JSP的语法糖
<%=request.getAttribute(“ varName”)%>
用EL实现: ${ varName }
注意,因为EL的存在,就要求你在写ES6的模板字符串时对美元符号号进行转义
\${...}
执行流程
EL-访问内置对象数据
${valName}
EL-访问请求参数数据
<!-- 获取指定参数的数值 param和paramValues相当于EL的内置对象-->
${param.name}
<!-- 获取指定参数中指定下标的数值 -->
${paramValues.hobby[0]}
EL-访问bean中的属性
加引号就直接访问,不加引号就间接访问
方式一: $ { 对象名 . 属性名 },例如:${user.name}
方式二: $ { 对象名 [“属性名”] },例如:${user["name"]}
<% request.setAttribute(“prop”,“age”); %>
<!-- 相当于表达式中写一个变量 -->
${ user[prop] }
EL-访问集合中的内容
<!-- student为ArrayList类型的对象 -->
${student[0].name}
EL-常用内置对象
EL-运算符
算数
关系
逻辑
其他
三目运算符 和java里的一样 验证运算符
${empty 表达式}
返回布尔值判断表达式是否为"空"值,null值、无元素的集合或数组、长度为零的String被认为是空值。
JSTL
JSP Tag Library 主要是想取代页面中的java代码。(可以说是老古董技术的倔强了)
使用
<!-- 先把jar包引入进来 -->
<!-- prefix属性用于指定库前缀 -->
<!-- uri属性用于指定库的标识 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
常用核心标签
<c:out></c:out> 用来将指定内容输出的标签
<c:set></c:set> 用来设置属性范围值的标签
<c:remove></c:remove> 用来删除指定数据的标签
<c:if test =“EL条件表达式”>
满足条件执行
</c:if >
<c:choose >
<c:when test =“EL表达式”>
满足条件执行
</c:when>
…
<c:otherwise>
不满足上述when条件时执行
</c:otherwise>
</c:choose >
<c:forEach var=“循环变量” items=“集合”>
…
</c:forEach>
常用函数标签
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
${fn:contains()}
${fn:toUpperCase()}
${fn:toLowerCase()}
常用格式化标签
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
可以输出格式化后的日期之类的......
自定义标签
不会真有人考古考到这个地步吧......