zoukankan      html  css  js  c++  java
  • JSTL标签

    概述

    1. 概念:JavaServer Pages Tag Library JSP标准标签库
      • 是由Apache组织提供的开源的免费的 jsp 标签 <标签>
    2. 作用:用于简化和替换 jsp 页面上的 java 代码
    3. 使用步骤:
      1. 导入 jstl 相关的 jar 包:jstl-1.2.jarstandard-1.1.2.jar
      2. 引入标签库:taglib指令:<%@ taglib prefix="" ="" %>
      3. 使用标签

    常用的JSTL标签

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

      1. 属性:
        • test必须属性,接受 boolean 表达式
          • 如果表达式为 true,则显示 if 标签体的内容
          • 如果表达式为 false,则不显示 if 标签体的内容
          • 一般情况下,test 属性值会结合 el 表达式一起使用
      2. 注意:
        • c:if 标签没有else情况,想要else情况,则可以再定义一个 c:if标签
    2. choose:相当于 java 代码的 switch 语句

      1. 使用choose标签取出数据 相当于 switch 的声明
      2. 使用when标签做判断 相当于 case
      3. 使用otherwise标签做其他情况的声明 相当于 default
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ 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", 12);
    %>
    
    <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>
    
    1. foreach:相当于java代码的for语句
      1. 完成重复的操作
      2. 遍历容器
    • 示例
    <%@ page import="java.util.ArrayList" %>
    <%@ page import="java.util.List" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ 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="1">
        ${i} <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>
    
    

    JSTL练习

    <%@ page import="com.my.domain.User" %>
    <%@ page import="java.util.ArrayList" %>
    <%@ page import="java.util.List" %>
    <%@ page import="java.util.Date" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>jstl练习</title>
    </head>
    <body>
    
    <%
        /*
            需求:
                在request域中用List集合存储一些User对象。
                需要使用jstl+el将List集合数据展示到jsp页面的表格table中
         */
        List<User> list = new ArrayList<>();
        list.add(new User("张三", 20, new Date()));
        list.add(new User("李四", 24, new Date()));
        list.add(new User("王五 ", 23, new Date()));
    
        request.setAttribute("list", list);
    %>
    
    <table border="1" align="center" width="500">
        <tr>
            <th>编号</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>生日</th>
        </tr>
        <%--展示数据--%>
        <c:forEach items="${list}" var="user" varStatus="s">
            <c:if test="${s.count % 2 == 0}">
                <tr bgcolor="red">
                    <td>${s.count}</td>
                    <td>${user.name}</td>
                    <td>${user.age}</td>
                    <td>${user.birStr}</td>
                </tr>
            </c:if>
    
            <c:if test="${s.count % 2 != 0}">
                <tr bgcolor="green">
                    <td>${s.count}</td>
                    <td>${user.name}</td>
                    <td>${user.age}</td>
                    <td>${user.birStr}</td>
                </tr>
            </c:if>
        </c:forEach>
    </table>
    
    </body>
    </html>
    
    
  • 相关阅读:
    ansible-playbook启动的多种方式
    git版本控制
    特征工程
    特征工程:图像特征提取和深度学习
    tensorflow数据读取机制tf.train.slice_input_producer 和 tf.train.batch 函数
    浙大版《C语言程序设计(第3版)》题目集 练习2-9 整数四则运算 (10 分)
    浙大版《C语言程序设计(第3版)》题目集 练习2-8 计算摄氏温度 (10 分)
    浙大版《C语言程序设计(第3版)》题目集 练习2-6 计算物体自由下落的距离 (5 分)
    浙大版《C语言程序设计(第3版)》题目集 练习2-4 温度转换 (5 分)
    浙大版《C语言程序设计(第3版)》题目集 练习2-3 输出倒三角图案 (5 分)
  • 原文地址:https://www.cnblogs.com/rainszj/p/12188875.html
Copyright © 2011-2022 走看看