JSTL标签基础与EL表达式
EL概述
EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。
简单来说EL表达式就是让程序员,简化了代码的书写量。在学EL表达式之前我们必须通过<%= %>来取出域中的数据,但这种方式过于繁琐,所以就诞生了EL表达式。
EL取出JSP四大域对象中保存的数据
域名称 | 使用方式 |
---|---|
pageContext域 | ${pageScope.key}; |
request域 | ${requestScope.key}; |
session域 | ${sessionScope.key}; |
application域 | ${applicationScope.key}; |
EL从四个域中获得某个值
- 写法:${key};
例:如果在request域中存储了一个名为"productList"的对象,我们不需要通过
${requestScope.productList}取出相应的对象,只需要
${productList}即可取出相应的对象。
相当于pageContext.findAttribute()从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找.
JSTL概述
JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标签库有5个子库,但随着发展,目前常使用的是他的核心库。
JSTL五大子库
名称 | 注释 |
---|---|
Core (核心库) | 标签库的URI:http://java.sun.com/jsp/jstl/core 常用前缀:c |
I18N(国际化) | 标签库的URI:http://java.sun.com/jsp/jstl/fmt 常用前缀:fmt |
SQL | 标签库的URI:http://java.sun.com/jsp/jstl/sql 常用前缀:sql |
XML | 标签库的URI:http://java.sun.com/jsp/jstl/xml 常用前缀:x |
Functions | 标签库的URI:http://java.sun.com/jsp/jstl/functions 常用前缀:fn |
下载与导入
-
下载:Apache的网站下载JSTL的JAR包。进入“http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载 JSTL的压缩包。jakarta-taglibs-standard-1.1.2.zip
-
导入:解压后在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD),将两个文件导入项目中。
JSTL核心库的使用
<c:if>标签
- 语法格式:
注意:没有eles分支
<c:if test="xxx" [var="xxx"] [scope="{page|request|session|application}"] >
执行体
</c:if>
- 标签属性讲解:
-
test属性:用于设置逻辑表达式,当逻辑表达式为true时执行执行体,否则不显示。
-
var属性:用于指定逻辑表达式中变量的名字
-
scope属性:用于指定var变量的作用范围,默认值是page。
<c:out>标签
使用方式:
<c:out value="${user.username}"/>
<c:foreach>标签
使用方式:
<c:forEach var="food1" items="${user.foods}">
<c:out value="${food1}"/>
<hr>
</c:forEach>