JSTL中的7个c标签及其应用

<%@ page import="day07.Student" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%--
  Created by IntelliJ IDEA.
  User: 83568
  Date: 2022/5/20
  Time: 17:55
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--
    找到lib目录下jar包standard中META-INF文件夹里的c.tld文件,
    打开后可以看到uri元素,
    该元素中的内容就是: http://java.sun.com/jsp/jstl/core
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
    <style>
        table {
            border: 1px solid black;
            width: 500px;
            margin: 0 auto;
        }
        td {
            border: 1px solid black;
        }
        .class {
            background-color: pink;
        }
    </style>
</head>
<body>
    <%--
        JSTL(Java server pages standarded tag library,即JSP标准标签库)
        是由JCP(Java Community Process)所制定的标准规范,
        它主要提供给Java Web开发人员一个标准通用的标签库,
        并由Apache的Jakarta小组来维护。
        开发人员可以利用这些标签取代JSP页面上的Java代码,
        从而提高程序的可读性,降低程序的维护难度。
    --%>
    <%
        Student stu = new Student("李四", "男", 30);
        request.setAttribute("stu", stu);

        Student stu1 = new Student("张三", "女", 18);
        Student stu2 = new Student("李四", "男", 28);
        Student stu3 = new Student("王五", "女", 38);
        Student stu4 = new Student("赵六", "男", 48);
        List<Student> list = new ArrayList<>();
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        list.add(stu4);
        request.setAttribute("stus", list);

        request.setAttribute("day", "6");
    %>
    <%--
        1. set标签
        语法:<c:set 属性=值 ......></c:set>
        作用:赋值
    --%>
    <c:set var="username" scope="session" value="张三"></c:set>
    <%=session.getAttribute("username")%><br>
    <c:set target="${stu}" property="name" value="王五"></c:set>
    <%-- ${requestScope.stu.name} --%>
    ${stu.name}<br>

    <%--
        2. out标签
        语法:<c:out value="输出信息"></c:out>
        作用:向浏览器输出信息
        注意:在日常开发中,out标签很少使用,
             因为EL表达式可以更方便地向浏览器页面输出信息
    --%>
    <c:out value="Hello World!"></c:out><br>
    <c:out value="${stu.age}"></c:out>

    <%--
        3. if标签
        语法:<c:if test="表达式"></c:if>
        作用:判断语句
    --%>
    <%-- form表单元素前后会自动换行 --%>
    <form action="">
        <input type="radio" name="gender" value="男"
                  <c:if test="${stu.gender == '男'}">checked</c:if>
        >男
        <input type="radio" name="gender" value="女"
               <c:if test="${stu.gender == '女'}">checked</c:if>
        >女
    </form>

    <%--
        4. for标签
        语法:<c:forEach 属性=值 ......></c:forEach>
        作用:循环语句
    --%>
    <table>
        <tr>
            <td>编号</td>
            <td>姓名</td>
            <td>性别</td>
            <td>年龄</td>
        </tr>
        <%--
            var:迭代变量
            items:被迭代的数组或集合
            varStatus:迭代状态
        --%>
        <c:forEach var="stu" items="${stus}" varStatus="sta">
            <tr <c:if test="${sta.count % 2 == 0}">class="class"</c:if>>
                <td>${sta.count}</td>
                <td>${stu.name}</td>
                <td>
                    <c:if test="${stu.gender == '男'}">男</c:if>
                    <c:if test="${stu.gender == '女'}">女</c:if>
                </td>
                <td>${stu.age}</td>
            </tr>
        </c:forEach>
    </table>

    <%--
        5. choose标签
        语法:
            <c:choose>
                <c:when test="表达式"></c:when>
                <c:otherwise></c:otherwise>
            </c:choose>
        作用:分支语句
    --%>
    今天是:
    <c:choose>
        <c:when test="${day == '0'}">
            星期日
        </c:when>
        <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:otherwise>
            错误!
        </c:otherwise>
    </c:choose>

    <%--
        6. forTokens标签
        语法:<c:forTokens 属性=值 ......></c:forTokens>
        作用:根据分隔符将字符串转换成字符串数组,再进行迭代
    --%>
    <%--
        item:需要被分隔迭代的字符串
        delims:分隔符
        var:迭代变量
    --%>
    <c:forTokens items="张三,30,男,郑州" delims="," var="str">
        <h2>${str}</h2>
    </c:forTokens>

    <%--
        7. redirect标签
        语法:<c:redirct url="url地址"></c:redirect>
        作用:重定向
    --%>
    <c:redirect url="index.jsp"></c:redirect>
</body>
</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值