JSTL标签库

37 篇文章 0 订阅
32 篇文章 0 订阅

全称
JSTL全称是JSP Standard Tag Library
EL表达式 主要是为了替代jsp中的表达式脚本
JSTL 主要是为了替代jsp中的代码脚本
是jsp更加简洁 可读性更好

JSTL由五组不同标签库组成
核心标签库
格式化
函数
数据库(不使用)
XML(不使用)

在jsp标签库中 使用taglib指令引入标签库
prefix表示前缀 url表示地址
CORE标签库
<%@ taglib prefix=“c” url=“http://java.sun.com/jsp/jstl/core”%>
XML标签库
<%@ taglib prefix=“x” url=“http://java.sun.com/jsp/jstl/xml”%>
FMT标签库
<%@ taglib prefix=“fmt” url=“http://java.sun.com/jsp/jstl/fmt”%>
SQL标签库
<%@ taglib prefix=“sql” url=“http://java.sun.com/jsp/jstl/sql”%>
FUNCTIONS标签库
<%@ taglib prefix=“fn” url=“http://java.sun.com/jsp/jstl/functions”%>

JSTL标签库的使用步骤
1.导入JSTL标签库的jar包 jstl1.2只需要导入一个jar包 之前的需要两个
2.写taglib指令 引入标签库
<%@ taglib prefix=“c” url=“http://java.sun.com/jsp/jstl/core”%>
然后就可以使用了

core核心库的使用
<c:set />
set标签可以往域里保存数据
保存之前$ {requestScope.abc}</ br>//(EL表达式 啥也没有的时候啥也不输出)
//保存到哪个域scope(page(默认值) request session application) var(key) value(value)
<c:set scope=“request” var=“abc” value=“abcValue”/>
保存之后$ {requestScope.abc}</ br>

<c:if />
if标签用于做if判断
//test属性表示判断的条件
<c:if test="${12==12}"/>
12等于12
</c:if>
只能写if 没有if-else(可以用多个if标签实现)

<c:choose><c:when><c:otherwise>标签
作用 用于多路判断 跟switch…case…default非常接近
<%
request.setAttribute(“height”,178);
%>
choose标签开始选择判断
when标签表示每一种判断情况 test表示当前判断情况的值
<c:choose>
<c:when test=" r e q u e s t S c o p e . h e i g h t > 190 " > 小 巨 人 < / c : w h e n > < c : w h e n t e s t = " { requestScope.height>190}"> 小巨人 </c:when> <c:when test=" requestScope.height>190"></c:when><c:whentest="{ requestScope.height>180}">
很高
</c:when>
<c:when test=" r e q u e s t S c o p e . h e i g h t > 170 " > 还 可 以 < / c : w h e n > < c : o t h e r w i s e > < c : c h o o s e > < c : w h e n t e s t = " { requestScope.height>170}"> 还可以 </c:when> <c:otherwise> <c:choose> <c:when test=" requestScope.height>170"></c:when><c:otherwise><c:choose><c:whentest="{ requestScope.height>160}">
大于160
</c:when>
<c:when test=" r e q u e s t S c o p e . h e i g h t > 150 " > 大 于 150 < / c : w h e n > < c : w h e n t e s t = " { requestScope.height>150}"> 大于150 </c:when> <c:when test=" requestScope.height>150">150</c:when><c:whentest="{ requestScope.height>140}">
大于140
</c:when>
<c:otherwise>
其它小于140的情况
</c:otherwise>
</c:choose>
剩下的小于160的情况
</c:otherwise>
</c:choose>
只会执行符合当前条件的 一旦有一个成立了 其他的就不管了(不需要使用break)
otherwise标签表示剩下的情况 choose-when 使用时 注意的点
1.标签里不要使用html注释//< !-- -->(只能使用jsp注释 <%-- 这是jsp注释–%>)
2.when标签的父标签一定是choose标签 即进行嵌套时要先写一个choose再写when

<c:forEach/>
作用:遍历输出使用
begin设置开始的索引 end设置结束的索引
var属性表示循环遍历的变量(也是当前正在遍历的数据)
1.遍历1到10,输出
<c:forEach begin=“1” end=“100” var=“i”>
${i} < /br>
</c:forEach>
2.遍历Object数组
<%
request.setAttribute(“arr”,new String[]{“18610541354”,“18688886666”,“18699998888”});
%>
<c:forEach items=" ${requestScope.arr}" var=“item”>
${item}< /br>
</c:forEach>

3.遍历Map集合
<%
Map<String,Object> map=new HashMap<String,Object>();
map.put(“key1”,“value1”);
map.put(“key2”,“value2”);
map.put(“key3”,“value3”);
//for(Map.Entry<String,Object> entry:map.entrySet()){}
request.setAttribute(“map”,map);
%>
<c:forEach items=“requestScope.map” var=“entry”>
{entry(输出键值对) entry.key(输出key) entry.value(输出value)}
</c:forEach>
4.forEach 遍历list集合
<%
List< Student > studentList=new ArrayList< Student >();
for(int i=1;i<=10;i++){
studentList.add(new Student(i,“username”+i,“password”+i,18+i));
}
request.setAttribute(“stus”,studentList);
%>
<c:forEach items=${requestScope.stus} var=“student”>
${student.username}
</c:forEach>

forEach中属性的介绍
items表示集合
var表示遍历到的数据
begin表示开始索引值(0表示从第一条开始遍历 2->第三条开始遍历)
end表示结束的索引值 (7表示到第8条结束)
step表示遍历的步长值(表示每次遍历遍历结束的索引变化(2就是结束就到下二个) 默认是1)
varStatus属性表示当前遍历到的数据的状态
<c:forEach items=${requestScope.studentList} var=“student” varStatus=“status”>
${
status.current(获取遍历到的数据)
status.index(获取遍历的索引)
status.count(获取遍历的个数(第几个))
status.first(当前遍历的数据是否是第一条)
status.last(当前遍历的数据是否是最后一条)
status.begin(获取begin的属性值)
status.end(获取end的属性值)
status.step(获取step的属性值)
}
</c:forEach>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值