• JSTL标签库


    目录

    一、JSTL标签库简介

    二、JSTL标签库的使用 

    1、使用步骤

    2、core  核心库使用

    1)set标签 (使用很少)

    2)if标签

    3)choose,when,otherwise标签

    4)forEach标签


    一、JSTL标签库简介

    JSTL 标签库全称是指  JSP Standard Tag Library ,是一个不断完善的开放源代码的  JSP  标 
    签库。

    EL 表达式主要是为了替换  jsp 中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个  jsp  页面变得更佳简洁。

    功能范围URI前缀
    核心标签库--重点http://java.sun.com/jsp/jstl/corec
    格式化http://java.sun.com/jsp/jstl/jstlfmtfmt
    函数http://java.sun.com/jsp//jstl/functionsfn
    数据库(不使用)http://java.sun.com/jsp/jstl/sqlsql
    XML(不使用)http://java.sun.com/jsp/jstl/xmlx

    二、JSTL标签库的使用 

    1、使用步骤

    1、先导入  jstl  标签库的  jar 包。 

    1. taglibs-standard-impl-1.2.1.jar 
    2. taglibs-standard-spec-1.2.1.jar

    2、在 jsp 标签库中使用 taglib 指令引入要使用的标签库

    1. CORE 标签库
    2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    3. XML 标签库
    4. %@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
    5. FMT 标签库
    6. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    7. SQL 标签库
    8. <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
    9. FUNCTIONS 标签库
    10. <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

    2、core  核心库使用

    1)set标签 (使用很少)

    1. <%--
    2. set />
    3. 作用:set标签可以往域中保存数据
    4. 域对象.setAttribute(key,value);
    5. scope 属性设置保存到哪个域
    6. page表示 PageContext域(默认值)
    7. request表示 Request
    8. session表示 Session域
    9. application表示 ServletContext域
    10. var属性设置 key是多少
    11. value属性设置值
    12. --%>
    13. 保存之前:${ sessionScope.abc } <br>
    14. <c:set scope="session" var="abc" value="abcValue"/>
    15. 保存之后:${ sessionScope.abc } <br>

    2)if标签

    1. <%--
    2. <c:if />
    3. 作用:if标签用来做 if判断。
    4. test属性表示判断的条件(使用EL表达式输出)
    5. --%>
    6. <c:if test="${ 12 == 12 }">
    7. <h1>12等于 12h1>
    8. c:if>
    9. <c:if test="${ 12 != 12 }">
    10. <h1>12不等于 12h1>
    11. c:if>

    3)choose,when,otherwise标签

    1. <%--
    2. <c:choose> <c:when> <c:otherwise>标签
    3. 作用:多路判断。跟 switch ... case .... default非常接近
    4. choose标签开始选择判断
    5. when标签表示每一种判断情况
    6. test属性表示当前这种判断情况的值
    7. otherwise标签表示剩下的情况
    8. <c:choose> <c:when> <c:otherwise>标签使用时需要注意的点:
    9. 1、标签里不能使用 html注释,要使用jsp注释
    10. 2、when标签的父标签一定要是choose标签
    11. --%>
    12. <%
    13. request.setAttribute("height", 180);
    14. %>
    15. <c:choose>
    16. <c:when test="${ requestScope.height > 190 }">
    17. <h2>小巨人h2>
    18. c:when>
    19. <c:when test="${ requestScope.height > 180 }">
    20. <h2>很高h2>
    21. c:when>
    22. <c:when test="${ requestScope.height > 170 }">
    23. <h2>还可以h2>
    24. c:when>
    25. <c:otherwise>
    26. <c:choose>
    27. <c:when test="${requestScope.height > 160}">
    28. <h3>大于 160h3>
    29. c:when>
    30. <c:when test="${requestScope.height > 150}">
    31. <h3>大于 150h3>
    32. c:when>
    33. <c:when test="${requestScope.height > 140}">
    34. <h3>大于 140h3>
    35. c:when>
    36. <c:otherwise>
    37. 其他小于 140
    38. c:otherwise>
    39. c:choose>
    40. c:otherwise>
    41. c:choose>

    4)forEach标签

    1、遍历1到10,输出

    1. <%--
    2. <c:forEach />
    3. begin属性设置开始的索引
    4. end 属性设置结束的索引
    5. var 属性表示循环的变量(也是当前正在遍历到的数据)
    6. --%>
    7. <table border="1">
    8. <c:forEach begin="1" end="10" var="i">
    9. <tr>
    10. <td>第${i}行td>
    11. tr>
    12. c:forEach>
    13. table>

    2、遍历 Object  数组

    1. <%--
    2. <c:forEach />
    3. items 表示遍历的数据源(遍历的集合)
    4. var 表示当前遍历到的数据
    5. --%>
    6. <%
    7. request.setAttribute("arr", new String[]{"18610541354","18688886666","18699998888"});
    8. %>
    9. <c:forEach items="${ requestScope.arr }" var="item">
    10. ${ item } <br>
    11. c:forEach>

    3、遍历 Map 集合

    1. <%
    2. Map<String,Object> map = new HashMap<String, Object>();
    3. map.put("key1", "value1");
    4. map.put("key2", "value2");
    5. map.put("key3", "value3");
    6. request.setAttribute("map", map);
    7. %>
    8. <c:forEach items="${ requestScope.map }" var="entry">
    9. <h1>${entry.key} = ${entry.value}h1>
    10. c:forEach>

    4、遍历 List 集合---list 中存放 Student 类,有属性:编号,用户名,密码,年龄,电话信息

    1. public class Student {
    2. private Integer id;
    3. private String username;
    4. private String password;
    5. private Integer age;
    6. private String phone;
    7. }
    1. <%
    2. List studentList = new ArrayList();
    3. for (int i = 1; i <= 10; i++) {
    4. studentList.add(new Student(i,"username"+i ,"pass"+i,18+i,"phone"+i));
    5. }
    6. request.setAttribute("stus", studentList);
    7. %>
    8. <table>
    9. <tr>
    10. <th>编号th>
    11. <th>用户名th>
    12. <th>密码th>
    13. <th>年龄th>
    14. <th>电话th>
    15. <th>操作th>
    16. tr>
    17. <%--
    18. items 表示遍历的集合
    19. var 表示遍历到的数据
    20. begin表示遍历的开始索引值
    21. end 表示结束的索引值
    22. step 属性表示遍历的步长值
    23. varStatus 属性表示当前遍历到的数据的状态
    24. --%>
    25. <c:forEach begin="2" end="7" step="2" varStatus="status" items="${requestScope.stus}" var="stu">
    26. <tr>
    27. <td>${stu.id}td>
    28. <td>${stu.username}td>
    29. <td>${stu.password}td>
    30. <td>${stu.age}td>
    31. <td>${stu.phone}td>
    32. <td>${status.step}td>
    33. tr>
    34. c:forEach>
    35. table>

  • 相关阅读:
    C语言实现带头双向循环链表
    戏说领域驱动设计(廿五)——领域事件
    SinoDB数据库资源分析
    浅谈Coroutine使用方法
    一小时快速上手win10 docker 、vscode、MobaXterm、git协作开发
    主流接口测试框架对比
    Windows内的Ubuntu虚拟机安装docker
    MongoDB副本集集群搭建
    openGauss常用的客户端连接工具
    redis中stream数据结构使用详解——redis最适合做消息队列的数据结构
  • 原文地址:https://blog.csdn.net/qq_51409098/article/details/126208951