JSTL标签库

1.概念

  1. JavaServer Pages Tag Library (JSP标准标签库)
  2. 用于简化和替换jsp页面上的Java代码
  3. 使用

2.常用的JSTL标签

  1. if:相当于Java代码的if

    • test属性:必须属性 接收Boolean表达式,如果表达式为true则显示if标签体内容,为false则不显示。一般情况下,test属性值会和EL表达式一起使用
  2. choose:相当于switch

    • 案例:完成数字编号对应星期几案例

    ​ 1.域中存储一数字
    ​ 2.使用choose标签取出数字 ,相当于switch
    ​ 3.使用when标签做数字判断,相当于case
    ​ 4.otherwise标签做其他情况的声明,相当于default

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%
    request.setAttribute("day",54);
    %>
    <c:choose>
    <c:when test="${day==1}">星期一</c:when>
    <c:when test="${day==2}">星期二</c:when>
    <c:when test="${day==3}">星期三</c:when>
    <c:when test="${day==4}">星期四</c:when>
    <c:when test="${day==5}">星期五</c:when>
    <c:when test="${day==6}">星期六</c:when>
    <c:when test="${day==7}">星期七</c:when>
    <c:otherwise>输入有误</c:otherwise>
    </c:choose>
  3. foreach:相当于for

    • 完成重复操作

    ​ begin:开始值
    ​ end:结束值
    ​ var:临时变量
    ​ step:步长
    ​ varStatus:循环状态对象
    ​ index:容器中元素索引,从0开始
    ​ count:循环次数,从1开始

    • 遍历容器

    ​ items:容器对象
    ​ var:容器中元素的临时变量
    ​ varStatus

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<c:forEach begin="1" end="10" step="2" var="i" varStatus="s">
${i}
<h3>${s.index}</h3>
<h4>${s.count}</h4>
</c:forEach>

<hr>

<%
List list = new ArrayList();
list.add("hxx");
list.add("qzy");
request.setAttribute("list",list);
%>
<c:forEach items="${requestScope.list}" var="str" varStatus="s">
${str}
<h3>${s.index}</h3>
<h4>${s.count}</h4>
</c:forEach>

3.案例

将用户信息全部显示在表格中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<body>
<%
List list = new ArrayList();
list.add(new User("hxx",new Date()));
list.add(new User("qzy",new Date()));
request.setAttribute("list",list);
%>
<table border="1" width="500px" align="center">
<tr>
<td>编号</td>
<td>姓名</td>
<td>生日</td>
</tr>
<%--数据行--%>
<c:forEach items="${list}" var="user" varStatus="s">
<tr>
<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.birStr}</td>
</tr>
</c:forEach>
</table>
</body>