JSTL标签库

  1. 1. 五个不同的标签库
    1. 1.1. core核心库使用
  2. 2. ForEach
  3. 3. LoopTagStatus

五个不同的标签库

taglib标签库引入jar包。
使用taglib指令引入标签库。

core核心库使用

set标签可以往库中保存数据
多路判断。跟switch…case…default非常接近
choose标签开始选择判断
when标签标示每一种判断情况
if标签用来做if判断 text属性表示判断的条件 只支持if

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<hr>
<hr>
保存之前:${requestScope.abc}<br>
<c:set scope="request" var="abc" value="avcvalur"/>
保存之后:${requestScope.abc}<br>
<%--<c:forEach end=""></c:forEach>--%>
if标签用来做if判断 text属性表示判断的条件 只支持if
<c:if test="${12==12}">
<h1>12等于12</h1>
</c:if>
<%--<c:choose><c:when><c:otherwise>--%>
选择判断域中的对象:
<% request.setAttribute("height",160);%>
<c:choose>
<c:when test="${requestScope.height>170}">小巨人</c:when>
<c:when test="${requestScope.height>180}">中巨人</c:when>
<c:when test="${requestScope.height>190}">大巨人</c:when>
<c:otherwise>未知</c:otherwise>
</c:choose>

标签中不能使用html注释

ForEach

遍历输出使用
同时使用两个相同名字的包会产生冲突
尽量避免命名重复

items 表示遍历的集合
var 表示遍历的数据
begin 表示遍历的开始
end 表示结束的索引值
step 表示遍历的步长值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
1.遍历1-100输出
begin属性设置开始的索引end设置结束的索引
var属性表示循环变量<br>
<%--for(int i=1;i<10;i++)--%>
<c:forEach begin="1" end="10" var="i">
<table>
<tr>
<td>第${i}行</td>
</tr>
</table>
</c:forEach>
<hr>
<%request.setAttribute("arr",new String[]{"123131310","355464664","64864864"});%>
<c:forEach items="${requestScope}" var="item">
${item}<br>
</c:forEach>
<%
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">
<h1> ${entry.key}=${entry.value}</h1>
</c:forEach>
<hr>
遍历数组
<%
List<Student> studentList = new ArrayList<Student>();
for (int i = 1; i<=10;i++){
studentList.add(new com.atguigu.servlet.Student(i,"username"+i,"pass"+i,i,i+"phone"));
}
request.setAttribute("stus",studentList);
%>
<table border="1">
<tr>
<th>编号</th>
<th>用户名</th>
<th>密码</th>
<th>年龄</th>
<th>电话</th>
<th>操作</th>
</tr>

<c:forEach begin="0" end="10" step="2" items="${requestScope.stus}" var="stus">
<tr>
<td>${stus.id}</td>
<td>${stus.username}</td>
<td>${stus.password}</td><td>${stus.id}</td>
<td>${stus.phone}</td>
<td>删除修改</td>
</tr>
</c:forEach>

LoopTagStatus

Object getCurrent() 表示获取当前遍历到的数据
int getIndex() 表示获取当前遍历的索引
int getCount() 表示遍历的个数
boolean isFirst() 表示当前遍历的数据是第一条或者最后一条
boolean isLast() 表示当前遍历的数据是第一条或者最后一条
读方法取决于方法boolean的数据生成的是读is方法
Integer getBegin()
Interger getEnd()
Interger gerStep()
获取begin end step 的属性值