• 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>

  • 相关阅读:
    办理出境签证时间
    智能化巡检系统哪家好?巡检系统可以为企业单位带来什么便利?
    JVM_类加载过程
    JDK自带JVM分析工具
    2006-2020年各省研发投入强度
    react18【系列实用教程】useReducer —— 升级版的 useState (2024最新版)
    Redis-数据类型(基本指令、String、List、Set、Hash、ZSet、BitMaps、HyperLogLog、GeoSpatial)/发布和订阅
    The 2023 ICPC Asia Regionals Online Contest (1) E. Magical Pair(数论 欧拉函数)
    python图片:获得颜色占比,图片尺寸
    老生常谈的商城系统(Asp.Net+uniapp)
  • 原文地址:https://blog.csdn.net/lmdbhf/article/details/127725350