1.什么是JSTL?
JSTL全称为 JSP Standard Tag Library 即JSP标准标签库。它与EL表达式一样,也是为了替换掉JSP中的java代码。它提供了一系列的JSP标签,实现了java的基本功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等。JSTL可以说是EL的补充、扩展,经常与EL一起使用。
2.常见子标签库
核心标签库: 包含 Web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。(常用)
格式化标签库:用来格式化显示数据的工作,比如:对不同区域的日期格式化等。
函数标签库:用来读取已经定义的某个函数。
XML 标签库:用来访问 XML 文件的工作,这是 JSTL 标签库的一个特点。(基本不用)
数据库标签库:可以做访问数据库的工作。(基本不用)
3.标签库导入及使用
1.下载jar包,并导入
2.使用引入标签库,设置uri和prefix的属性值。
核心标签库:
格式化标签库:
函数标签库:
XML 标签库:
数据库标签库:
uri和prefix属性的值可以在jstl-impl-1.2.2.jar/META-INF中可以找到。
3.使用
语法:
注:前缀为引入时的prefix,标签库的前缀是固定的不可自定义。
4.核心标签库
1.用于把数据输出到 JSP 页面中显示
2.将值存储到作用域或为 JavaBean 中的变量属性赋值
3.删除存在于 scope 中的变量
4.c:if 标签:条件判断(单条件,相当于java的if或if-else)
补充:c:if 标签一般用于只有一个条件的情况。
需要用到类似于if-else结构是可以设定var,如var="result",然后在另一个c:if 标签中的test对对结果进行取反,如test="${!result}
5.c:choose 、 c:when、 c:otherwise标签:条件判断(多条件,相当于if-else-if)
例:
1
2
3 优秀4
5
6 良好7
8
9 及格10
11
12 不及格13
14
使用时需要注意以下几点:
1.c:when必须在c:otherwise之前出现
2.c:otherwise只能出现一次
3.c:when和c:when和c:otherwise之前不允许出现其他任何字符
6.c:forEach标签:循环,相当于java的迭代器
补充:
begin & end:只能为数字,当没有items属性时,var的值从begin数字循环到end数字;当有items属性时,begin & end就表示下标。
varStatus的属性:
first(判断当前循环体是否为第一个)
last(判断当前循环体是否为最后一个)
count(当前循环次数)
index(当前循环体的下标)
varStatus用法如:
varStatus="status"
${status.first} ${status.last} ${status.count} ${status.index}
5.格式化标签库
1.fmt:formatDate:将一个时间对象按指定格式输出
格式:
2.fmt:parseDate:将一个字符串按指定格式解析成时间对象
格式:
6.函数标签库
函数标签库,EL函数库、fn标签库。需要在EL表达式中使用。
如:${fn:length(xxx) }:会到作用域中去找xxx属性,然后输出它的长度,没找到就为0
fn标签库中的标签与java中的String对象方法基本相同。