JSTL
java Server Pages Standard Tag Libray(JSTL):JSP 标准标签库,是⼀个定制标签类库的集合,⽤于
解决⼀些常⻅的问题
环境搭建
1.添加坐标依赖 jstl starded
2.在页面中引入 <%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
–%>
标签的使用
条件动作标签
if标签
语法
<c:if test="<boolean>" var="<string>" scope="<string>">
...
</c:if>
属性
test 条件
var ⽤于存储条件结果的变量(限域变量名)
scope:
var属性的作⽤域 ,可取值:page|request|session|application,默认值是page
<%
request.setAttribute("flag",true);
request.setAttribute("num",1);
%>
<c:if test="${flag}">
<p>结果为true<p>
</c:if>
<c:if test="${num > 0}">
<p>num的值⽐0⼤<p>
</c:if>
JSTL中没有else标签,为了模拟 else 的情景,需要使⽤两个 if 标签,并且这两个标签为相反的条
件。
choose、when 和 otherwise 标签
相当于java的switch和case,⽤于在众多选项中做出选择.
语法:
<c:choose>
<c:when test="<boolean>">
...
</c:when>
<c:when test="<boolean>">
...
</c:when>
...
...
<c:otherwise>
...
</c:otherwise>
</c:choose>
属性:
choose标签没有属性。
when标签只有⼀个test属性。
otherwise标签没有属性。
<%
request.setAttribute("score", 90);
%>
<c:choose>
<c:when test="${score < 60 }">
<h3>你个⼩渣渣!</h3>
</c:when>
<c:when test="${score >= 60 && score < 80 }">
<h3>⾰命尚未成功,同志仍需努⼒!</h3>
</c:when>
<c:otherwise>
<h3>你很棒棒哦!</h3>
</c:otherwise>
</c:choose>
迭代标签
forEach标签
语法:
<c:forEach
items="<object>"
begin="<int>"
end="<int>"
step="<int>"
var="<string>"
varStatus="<string>">
</c:forEach>
属性
items 要被循环的数据
begin 开始的元素(0=第⼀个元素,1=第⼆个元素) 默认值: 0
end 最后⼀个元素(0=第⼀个元素,1=第⼆个元素) 默认值: Last element
step 每⼀次迭代的步⻓ 默认值: 1
var 代表当前条⽬的变量名称
varStatus 代表循环状态的变量名称
forEach varStatus 属性
index: 当前这次迭代从 0 开始的迭代索引
count: 当前这次迭代从 1 开始的迭代计数
first: ⽤来表明当前这轮迭代是否为第⼀次迭代的标志
last: ⽤来表明当前这轮迭代是否为最后⼀次迭代的标志
示例
遍历主体多次
<c:forEach begin="开始数" end="结束数" step="迭代数" var="限域变量名">
</c:forEach>
相当于java的for循环:
for(int i = 0; i < 10; i++) {
}
循环
<c:forEach items="被循环的集合" var="限域变量名" varStatus="当前成员对象的相关信息">
</c:forEach>
相当于java的foreach循环:
for(String str : list) {
}
格式化动作标签
formatNumber标签
formatNumber标签⽤于格式化数字,百分⽐,货币。该标签⽤指定的格式或精度来格式化数字。
(将数值型数据转换成指定格式的字符串类型。)
<fmt:formatNumber
value="<string>"
type="<string>"
var="<string>"
scope="<string>"/>
属性:
value 要显示的数字
type NUMBER,CURRENCY,或 PERCENT类型 默认值Number
var 存储格式化数字的变量 默认值:Print to page
scope var属性的作⽤域 默认值page
如果设置了var属性,则格式化后的结果不会输出,需要通过el表达式获取var对应的限域变量名
默认的类型(type)的取值为number。可取值:number数值型、percent百分⽐类型、currency货币型
formatDate标签
formatDate标签⽤于使⽤不同的⽅式格式化⽇期。(将Date型数据转换成指定格式的字符串类
型。)
语法:
<fmt:formatDate
value="<string>"
type="<string>"
dateStyle="<string>"
timeStyle="<string>"
pattern="<string>"
timeZone="<string>"
var="<string>"
scope="<string>"/>
属性
value 要显示的⽇期
type DATE, TIME, 或 BOTH 默认值:date
dateStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT 默认值:default
timeStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT 默认值:default
pattern ⾃定义格式模式
timeZone 显示⽇期的时区 默认值:默认时区
var 存储格式化⽇期的变量名 默认值:显示在⻚⾯
scope 存储格式化⽇志变量的范围 默认值:⻚⾯
parseNumber标签
parseNumber标签⽤来解析数字,百分数,货币。(parseNumber 标签可以将数字、货币或百分⽐
类型的字符串转换成数值型。)
语法:
<fmt:parseNumber
value="<string>"
type="<string>"
var="<string>"
scope="<string>"/>
属性
value 要解析的数字 默认值:Body
type NUMBER,,CURRENCY,或 PERCENT 默认值:number
var 存储待解析数字的变量 默认值:Print to page
scope var属性的作⽤域 默认值:page
parseDate标签
parseDate标签⽤于解析⽇期。(将指定格式的字符串转换成Date类型。)
语法
<fmt:parseDate
value="<string>"
type="<string>"
dateStyle="<string>"
timeStyle="<string>"
pattern="<string>"
var="<string>"
scope="<string>"/>
属性
value 要显示的⽇期
type DATE, TIME, 或 BOTH 默认值: date
dateStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT 默认值: default
timeStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT 默认值: default
pattern ⾃定义格式模式
var 存储格式化⽇期的变量名 默认值: 显示在⻚⾯
scope 存储格式化⽇志变量的范围 默认值: ⻚⾯