EL表达式
- EL(Expression Language)表达式语言,用于简化JSP的输出
- EL表达式的基本语法:
${表达式}
EL的作用域对象
- EL表达式内置四中作用域对象
- 当我们忽略书写作用域对象时,EL则按作用域从小到大依次尝试获取
- 如果这四个作用域都没又匹配到,则会输出空字符串
作用域对象 | 描述 |
---|---|
pageScope | 当前页面获取值 |
requestScope | 从当前请求中获取值 |
sessionScope | 从当前会话中获取值 |
applicationScope | 从整个web应用获取值 |
EL表达式输出
- 基本语法:
${作用域.属性名.子属性}
(作用域可不写,取值则按作用域从小到大依次尝试获取) - EL表达式支持 简单的运算
EL的param内置对象
- 用来简化请求体参数的输出w
- 语法:
${param.参数名}
我们在servlet中获取请求参数:request.getParameter("xxx")
在EL中表达式我们可以直接显示:${param.xxx}
JSTL标签库
JSTL(JSP Standard Tag Library),JSP标准标签库
EL表达式可以在JSP直接使用,但JSTL需要引入JSTL标签库才可以使用:
为什么要引入JSTL标签库
-
不建议在JSP中直接写Java代码(规范性问题)
-
EL可以解决“不用书写java代码”的问题,但它不能遍历集合,做逻辑的控制。
-
JSTL可以解决取EL的不足之w处。
与EL表达式的关系:JSTL与EL联合使用。
JSTL的标签库种类
类别 |
---|
核心标签库 - core |
格式化输出标签库 - fmt |
SQL操作标签库 - sql |
XML操作标签库 -xml |
函数标签库 - functions |
如何使用核心标签库
- 核心标签库提供了JSTL的基础功能:(包括:输出,循环,迭代,判断 …)
<%@ taglib prefix="c" uri="thhp://java.sun.com/jsp/jstl/core %>"
用于说明当前页面所使用的标签库
JSTL判断标签
-
JSTL提供了两组判断标签
-
<c:if>
- 单分支判断-
没有else,使用并不方便
-
使用
test
进行测试<c:if test = "${score >= 60 }"></c:if> <h1> 恭喜,测试成功 </h1> </c:if>
-
-
<c:choose> <c:when> <c:otherwise>
-多分支判断-
test语句中字符串比较使用等号
==
,并且字符串用单引(为了与外边的双引号区分) -
<c:choose> <c:when test = "${level == 'A'}"> <h2>你很优秀</h2> </c:when> <c:when test = "${level == 'B'}"> <h2>你很一般</h2> </c:when> <c:otherwise> <h2>你需要努力</h2> </c:otherwise> </c:choose>
-
-
JSTL遍历集合
<c:forEach>
标签用于遍历集合的每一个对象。
<c:forEach var="p" items="${persons}" varStatus = "idx">
第${idx.index + 1} 位
姓名:${p.name} 性别:${p.sex} 年龄:${p.age}
</c:forEach>