• JSTL介绍


    JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个JSP标签集合,它封装了JSP应用的通用核心功能,可以简化java代码的书写。

    JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签

    JSTL的使用

    要使用JSTL,首先要先下载好jar包,下载好后,导入项目的WEN-INF的lib目录下即可,当然,要在jsp中使用JSTL,还得使用@taglib标签。

    如果使用maven的话只需要在pom文件中写入如下依赖:

    1. <dependency>
    2. <groupId>jstlgroupId>
    3. <artifactId>jstlartifactId>
    4. <version>1.2version>
    5. dependency>

    核心标签:

    JSP文件开头使用如下语法

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    核心标签库共有14个标签,从功能上分为4类

    标签类别标签
    表达式控制标签out,set,remove,catch
    流程控制标签if,choose,when,otherwise
    循环标签forEach,forTokens
    URL操作标签import,url,redirect,param

    out标签的用法

    用于在JSP中显示数据,就像<%= … >

     

    格式化标签

    JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:

    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

    fmt标签用法(格式化日期)

    标签

    语法格式

    1. <fmt:parseDate
    2. value=""
    3. type=""
    4. dateStyle=""
    5. timeStyle=""
    6. pattern=""
    7. timeZone=""
    8. parseLocale=""
    9. var=""
    10. scope=""/>

    属性

    标签有如下属性:

    属性描述是否必要默认值
    value要显示的日期
    typeDATE, TIME, 或 BOTHdate
    dateStyleFULL, LONG, MEDIUM, SHORT, 或 DEFAULTdefault
    timeStyleFULL, LONG, MEDIUM, SHORT, 或 DEFAULTdefault
    pattern自定义格式模式
    timeZone显示日期的时区默认时区
    var存储格式化日期的变量名显示在页面
    scope存储格式化日志变量的范围页面

    属性设置我们需要的输出的时间格式。

    jstl常用标签:

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <%-- @taglib 指令 --%>
    3. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    4. <html>
    5. <head>
    6. <title>jstl常用的标签title>
    7. head>
    8. <body>
    9. <%--
    10. begin: 起始值
    11. end:结束值
    12. step:步长 +步长
    13. --%>
    14. <p>------------forEach--------------p>
    15. <c:forEach begin="0" step="2" end="10" var="i">
    16. <p>${i}p>
    17. c:forEach>
    18. <p>------------c:if--------------p>
    19. <%--
    20. test : true 展示标签 否则不展示
    21. --%>
    22. <c:if test="${1>2}">
    23. <button>1>2按钮button>
    24. c:if>
    25. <c:if test="${1<2}">
    26. <button>1<2按钮button>
    27. c:if>
    28. <p>------------c:out--------------p>
    29. <c:out value="20">c:out>
    30. <p>------------c:choose--------------p>
    31. <%--
    32. choose 类似多分支的选择结构 只会选择其中一条分支执行
    33. 自上而下一次判定 执行首次满足条件的分支 都不满足执行otherwise
    34. --%>
    35. <c:choose>
    36. <c:when test="${false}"><button>truebutton>c:when>
    37. <c:when test="${false}"><button>falsebutton>c:when>
    38. <c:otherwise><button>otherwisebutton>c:otherwise>
    39. c:choose>
    40. <p>------------c:set--------------p>
    41. <%--
    42. 设置值到域对象
    43. --%>
    44. <c:set var="username" value="admin" scope="session">c:set>
    45. <p>username =${sessionScope.username}p>
    46. <p>------------c:remove--------------p>
    47. <%--
    48. 删除指定域对象中的值
    49. --%>
    50. <c:remove var="username" scope="session">c:remove>
    51. <p>username =${sessionScope.username}p>
    52. body>
    53. html>

    c:foreach标签演示:

    1. <%@ page import="cn.kgc.javaweb.entiy.User" %>
    2. <%@ page import="java.util.ArrayList" %>
    3. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    4. <%-- @taglib 指令 --%>
    5. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    6. <html>
    7. <head>
    8. <title>使用jstl展示数据title>
    9. head>
    10. <body>
    11. <%
    12. User user = new User("jack", 30);
    13. ArrayList<User> users = new ArrayList<>();
    14. users.add(user);
    15. users.add(user);
    16. users.add(user);
    17. users.add(user);
    18. request.setAttribute("users", users);
    19. %>
    20. <%--jstl+el 数据展示 --%>
    21. <table border="1" width="100%" >
    22. <tr>
    23. <td>序号td>
    24. <th>名字th>
    25. <th>年龄th>
    26. tr>
    27. <%-- 数据迭代--%>
    28. <c:forEach items="${users}" var="user" varStatus="vs">
    29. <tr>
    30. <td>${vs.index+1}td>
    31. <td>${user.username}td>
    32. <td>${user.age}td>
    33. tr>
    34. c:forEach>
    35. table>
    36. body>
    37. html>

  • 相关阅读:
    列表和字典练习
    STM32 LED编程 GPIO的初始化(标准库)
    【课程】SP Module4 音频滤波器
    Chrome代码分析(一)——Node对象结构
    MySQL 主从复制原理以及流程
    [拒绝高深莫测] 区块链与比特币0基础科普
    Rust中的数据抓取:代理和scraper的协同工作
    六十九、Vue3
    C++中双线程调用网络摄像头,用多线程调用多个摄像头并同步执行算法
    谷粒商城--整合Elasticsearch和商品的上架
  • 原文地址:https://blog.csdn.net/lmdbhf/article/details/127725350