鸽了一个月,我又回来了

JSTL

  1. 概念:JavaServer Pages Tag Library JSP标准标签库

    • 是由Apache组织提供的开源的免费的jsp标签
  2. 作用:用于简化和替换jsp页面上的java代码

  3. 使用步骤

    1. 导入jar包

    2. 引入标签库:taglib指令:<%@ taglib %>

    3. 使用标签

常用标签

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

  2. choose:相当于Java代码的switch语句

  3. foreach:相当于Java代码的for语句

if标签

  1. 属性:

    • test 必须属性:接受boolean表达式

      • 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容

      • 一般情况下,test属性会结合el表达式一起使用

  2. 注意:c:if标签没有else情况,想要else情况,则可以再定义一个c:if标签

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
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>if标签</title>
</head>
<body>
<%--

c:if标签
1. 属性:
· test 必须属性:接受boolean表达式
· 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容

` 一般情况下,test属性会结合el表达式一起使用

2. 注意:c:if标签没有else情况,想要else情况,则可以再定义一个c:if标签
--%>
<c:if test="true">
我是真...
</c:if>
<br>
<%
//判断request域中的一个list集合是否为空,如果不为null则显示遍历集合
List list=new ArrayList<>();
list.add("aaaa");
request.setAttribute("list",list);

request.setAttribute("number",3);
%>

<c:if test="${not empty list}">
遍历集合...
</c:if>
<br>
<c:if test="${number %2 !=0}">
${number}为奇数
</c:if>
<br>
<c:if test="${number %2 ==0}">
${number}为偶数
</c:if>
</body>
</html>

avatar

choose标签

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

    1. 域中存储一个数字

    2. 使用choose标签取出数字 相当于switch声明

    3. 使用when标签做数字判断 相当于case

    4. otherwise标签做其他情况的声明 相当于default

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
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>choose标签</title>
</head>
<body>

<%--

完成数字编号对应星期几案例
1. 域中存储一个数字
2. 使用choose标签取出数字 相当于switch声明
3. 使用when标签做数字判断 相当于case
4. otherwise标签做其他情况的声明 相当于default
--%>

<%
request.setAttribute("number",3);
%>

<c:choose>
<c:when test="${number==1}">星期一</c:when>
<c:when test="${number==2}">星期二</c:when>
<c:when test="${number==3}">星期三</c:when>
<c:when test="${number==4}">星期四</c:when>
<c:when test="${number==5}">星期五</c:when>
<c:when test="${number==6}">星期六</c:when>
<c:when test="${number==7}">星期天</c:when>

<c:otherwise>数字输入有误</c:otherwise>
</c:choose>

</body>
</html>

avatar

foreach标签

  • foreach相当于Java代码的for循环

    1. 完成重复的操作

      • 属性:

        • begin:开始值

        • end:结束值

        • var:临时变量

        • step:步长

        • varStatus:循环状态对象

          • index:容器中元素的索引从0开始

          • count:循环次数从1开始

    2. 遍历容器

      • 属性:

        • items:容器对象

        • var:容器中元素的临时变量

        • varStatus:循环状态对象

          • index:容器中元素的索引从0开始

          • count:循环次数从1开始

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
57
58
59
60
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>foreach标签</title>
</head>
<body>
<%--

foreach相当于Java代码的for循环
1. 完成重复的操作
for(int i=0;i<10;i++){
代码
}
· 属性:
begin:开始值
end:结束值
var:临时变量
step:步长
varStatus:循环状态对象
index:容器中元素的索引从0开始
count:循环次数从1开始
2. 遍历容器
List<User> list;
for(User user:list){
代码
}
· 属性:
items:容器对象
var:容器中元素的临时变量
varStatus:循环状态对象
index:容器中元素的索引从0开始
count:循环次数从1开始
--%>

<c:forEach begin="1" end="10" var="i" step="2" varStatus="s">
${i}<h3>${s.index}</h3> <h4>${s.count}</h4> <br>
</c:forEach>

<hr>

<%
List list=new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");

request.setAttribute("list",list);
%>

<c:forEach items="${list}" var="str" varStatus="s">
${s.index} ${s.count} ${str}<br>
</c:forEach>


</body>
</html>

avatar