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" %>
可以输出格式化后的日期之类的......

自定义标签

不会真有人考古考到这个地步吧......