欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

22- JSTL

程序员文章站 2024-01-27 22:34:22
...

1 JSTL介绍

  • JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
  • 使用JSTL实现JSP页面中逻辑处理。如判断、循环等。

2 JSTL 使用

22- JSTL

2.1 通用标签: set、 out、 remove

  • test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>JSTL标签库</title>
</head>
<body>
<%--
    1. 导入 JSTL 的jar 包,然后在jsp页面顶部引入 JSTL标签库
    2. 在 jsp 使用 c: 形式使用标签
--%>

<%--
    set : 存一个变量
    out : 取值
    remove: 从作用域移除变量
--%>
设置num<c:set var="num" value="666"></c:set><br>
取出num<c:out value="${num}" ></c:out><br>
移除num<c:remove var="num"></c:remove><br>
再次取出num<c:out value="${num}" default="0"></c:out>

</body>
</html>

22- JSTL

2.2 条件标签 if, choose

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>JSTL标签库</title>
</head>
<body>

<c:set var="x" value="10"></c:set>
<c:if test="${ x > 9}"> x 大于 9</c:if>

<br>

<c:set var="b" value="2"></c:set>
<c:choose>
    <c:when test="${b==1}">
        b 的值是1
    </c:when>

    <c:when test="${b==2}">
        b 的值是2
    </c:when>
</c:choose>

</body>
</html>

2.3 foreach

  • c:forEach中的varStatus属性。
  • 指向一个字符串,该字符串引用一个对象。 map.put(“vs”,一个对象);

  • 这个对象记录着当前遍历的元素的一些信息:
    getIndex():返回索引。从0开始
    getCount():返回计数。从1开始
    isLast():是否是最后一个元素
    isFirst():是否是第一个元素

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>JSTL标签库</title>
</head>
<body>

<c:forEach var ="i" begin="1" end="8" step="2">
    ${i}<br>
</c:forEach>

</body>
</html>

2.3.1 foreach 表格案例

  • test.jsp
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>JSTL标签库</title>
    <style type="text/css">
<%--        奇数行; .代表类选择器--%>
        .odd{
            background-color: yellow;
        }

        .even{
            background-color: green;
        }

    </style>
</head>
<body>

<%
    List<String> list = new ArrayList<>();
    list.add("张三");
    list.add("刘备");
    list.add("曹操");
    list.add("赵子龙");
    list.add("袁绍");

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

<table border="2">
    <tr>
        <td>数据</td>
        <td>索引</td>
        <td>是否第一个</td>
        <td>是否最后一个</td>
        <td>计数</td>
    </tr>

    <%--
        items: EL 表达式,一般写作用域数据的key
        var : 变量名
    --%>
    <c:forEach items="${list}" var="name" varStatus="vs">
        <tr class="${vs.count % 2 == 0 ? 'even':'odd'} ">
            <td>${name}</td>
            <td>${vs.index}</td>
            <td>${vs.first}</td>
            <td>${vs.last}</td>
            <td>${vs.count}</td>
        </tr>
    </c:forEach>

</table>

</body>
</html>

22- JSTL

相关标签: jstl