根据
JSTL
标签所提供的功能,可以将其分为
5
个类别。
核心标签
格式化标签
SQL
标签
XML
标签
JSTL
函数
学习
jstl
主要学习两个 核心标签 、
jstl
函数
jsp: EL
表达式,也页面中输出内容或者设置内容;默认存在于
jsp
中,不需要导入第三方的
jar
包;
jstl
属于额外的拓展库,想要使用,需要导入第三方的
jar
包;
1.1
版本之前的
; jstl.jar standard.jar
1.2
版本之后的
; jstl1.2.jar
核心标签,
core
通常被称为
c
标签
使用步骤:
1.
导入第三方
jar
包在程序中,并且加载进程序;
2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> uri
表
示要使用的标签库是哪一个,
jsp
下面的
core
标签库,
prefix
表示在页面中使用哪个标签来进行操作;
url:
资源路径,
http://localhost:8080/index.jsp
uri:
全网唯一,使用网络端口进行匹配
3.
使用
<c:out />
标签 向页面中输出内容
<c:out value="${username }" default="ls" />
如果在域中找不到属性
username
,则默认显示
ls
4.
使用
<c:set />
标签 向域中设置内容
两种使用方式:
1
、针对
String
、
int
、
boolean
、
char
、集合类型
(
非
Map)
等,需要使用
<c:set value="
张三丰
" var="username" scope="request" /> var
变
量只能修饰 以上几种类型;
value:
设置值
var:
设置数据的名称
scope:
设置保存的域
获取时:
${username }
2
、
JavaBean
、
Map
类型
,
需要使用:
<c:set property="name" target="${student }" value="ww" />
这
种方式不能出现
var
以及
scope
属性
property:
设置
Javabean
的属性,
setName() target:
用来从域中获
取
Javabean
对象的;
5. if
选择
<c:if test="boolean
类型表达式
" var="test
的结果保存变量名
" scope="
设置
var
保
存的域值
" >
test
为
true
时,显示的内容
</c:if>
6. if ... else if ... else ...
<c:choose>
表示 以下内容是一个
if else
语句
<c:when test="${name eq 'zs'}"> if(boolean
表达式
){
张三
}
张三
</c:when>
<c:when test="${name eq 'ww'}"> else if(boolean
表达式
){
王五
}
王五
</c:when>
<c:otherwise> else {
其他人
}
其他人
</c:otherwise>
</c:choose>
7. forEach
循环,增强
for
循环,
<c:forEach items="
需要遍历的对象
" var="
每次循环出来的内容
" begin="
开始的下
标
" end="
结束的下标
" step="
每次增长下标的数量
" varStatus="
循环的对象状态
(
步长、开始下标、结
束下标、下标、是否第一、是否最后、总遍历数、当前元素
)">
${var
的值
}
</c:forEach>
8. <c:url value="index.jsp" var="
将路径保存起来
" scope="
保存的域
">
用来设置
url
路径的,当
value
中不带
/
时,与直接使用相对路径用法一样,
当设置
/
时,用法不一样,会将当前的项目名称添加在
/
之前
<c:url value="/index.jsp"> --> web04/index.jsp
9. <c:redirect url="
重新跳转的路径
" >
重定向 ,可以是本项目内的路径也可以是外部
资源路径
<c:redirect url="http://www.baidu.com" />
JSTL
函数 :
funcation fn
标签
使用步骤:
1.
导入第三方
jar
包在程序中,并且加载进程序;
2. <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"
%>
3.
使用
fn
标签库,不是标签,而是在
el
表达式中使用
${fn:
函数名称
}
contains:
前一个字符串中,是否包含后一个字符串;
containsIgnoreCase:
前一个字符串中,是否包含后一个字符串
(
忽略大小写的比较
)
;
startsWith:
前一个字符串,是否以后一个字符串开头
endsWith:
前一个字符串,是否以后一个字符串结尾
toLowerCase:
将字符串变成全小写;
toUpperCase:
将字符串变成全大写;
indexOf:
后一个字符串在前一个字符串的下标位置;如果没有这个字符串,就返回
-1
length:
表示字符串的长度,和中英文无关,只认个数
replace:
将第一个字符串中的内容,替换成另外内容
substring:
将第一个字符串,从开始位置,截取到结束位置 包头不包尾
join:
将一个数组,通过连接符,连接成一个字符串;
split:
将一个字符串,以某一个字符拆分为数组;