无论是EL表达式还是JSTL都是组成JSP的一部分,也都是为了简化java代码在jsp中的书写
el表达式更注重于表达式,没有什么复杂的算法 而JSTL则是标准库,能够通过类似html标签的形式实现简单的java逻辑算法
EL表达式
-
感觉类似于正则 但他是用来简化JSP中java代码的书写的,但其实他就是简单的表达式,和正则一样,需要配合其他语法来使用。
-
只能做一些简单的算法
格式:${}
两大方面用法:
一,基础运算
加减乘除
${3+4}<br>
${3/4}<br>
${3%4}<br>
二,获取域中的值
jsp从四大域中获取值
2. 获取值
1. el表达式只能从域对象中获取值
2. 语法:
1. ${域名称.键名}:从指定域中获取指定键的值
* 域名称:
1. pageScope --> pageContext
2. requestScope --> request
3. sessionScope --> session
4. applicationScope --> application(ServletContext)
在域中储存数据
注意域中储存的数据是Object类型的数据,
由Servelt或其他后端来向域中存储信息,el表达式来获取
${requestScope.tiao==123}
JSTL
概念:JavaServer Pages Tag Library JSP标准标签库
引入:<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>
在jsp最上面引入
- STL就是用来简化html中java代码的,直接嵌套在html’中,还让他显得都不像java代码了
- 类似于用html的写法来写java
常用的标签就三个
1. if:相当于java代码的if语句
2. choose:相当于java代码的switch语句
3. foreach:相当于java代码的for语句
IF标签;
<c:if test="true">
if标签中test的条件为true就会显示里的内容,需要结合el表达式使用
</c:if>
**结合El表达式使用**
<c:if test="${requestScope.tiao==123}">
<h1>当通过后端处理过的request域中的tiao为123时,才显示这行html</h1>>
</c:if>
Choose选择标签
- 其实就是switch
- 使用choose相当于switch
- when相当于case
- otherwise相当于
<c:choose>
<c:when test="${ requestScope.num==1}">数字1</c:when>
<c:when test="${requestScope.num==2}">数字2</c:when>
<c:when test="${requestScope.num==3}">数字3</c:when>
<c:when test="${requestScope.num==4}">数字4</c:when>
<c:when test="${requestScope.num==5}">数字5</c:when>
从域中获取num数据,不同的值对应不同的选择
</c:choose>
For循环
- foreach:相当于java代码的for语句
- 完成重复的操作
- 属性:
begin:开始值
end:结束值 —条件
var:临时变量 —就是i
step:步长 ----每循环一次i增加的长度
varStatus:循环状态对象----用来获取i的值
index:容器中元素的索引,从0开始
count:循环次数,从1开始
注意他是通过for标签的形式来书写for循环的
<c:forEach var="i" begin="0" end="5" step="1" varStatus="ti">
${ti.index}
</c:forEach>
但从各个方面看其实是看不太懂EL和JSTL有什么用的,需要结合到整个JSP界面才可以认知到,如何使用