JSTL JSP Standard Tag Library 标准标签库

JSTL允许开人员可以像使用HTML标签 那样在JSP中开发Java功能。

JSTL库有core, i18n, fmt, sql 等等。

i18n和sql用的很少,core和fmt在工作中会用到,本章节主要讲解core和fmt

步骤1:导入jar包
步骤2:set out remove
步骤3:if else
步骤4:choose
步骤5:forEach
步骤6:forTokens
步骤7:fmt:formatNumber 格式化数字
步骤8:fmt:formatDate 格式化日期
步骤9:fn:

步骤 1 : 导入jar包

为了能够在JSP 中使用JSTL,首先需要两个jar包,分别是jstl.jar 和standard.jar

可以在右侧下载

把这两个jar包放在web/WEB-INF/lib 下

步骤 2 : set out remove

在页面中使用JSTL需要在jsp中 通过指令进行设置

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

prefix="c" 表示后续的标签使用都会以<c: 开头

<c:set var="name" value="${'gareen'}" scope="request" />

在作用域request中设置name,相当于
<%request.setAttribute("name","gareen")%>

<c:out value="${name}" />

相当于 <%=request.getAttribute("name")%>

<c:remove var="name" scope="request" />

在作用域request中删掉name,相当于
<%request.removeAttribute("name")%>

作用域可以是pageContext, request, session, application, 参考 作用域

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

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

<c:set var="name" value="${'gareen'}" scope="request" />

通过标签获取name: <c:out value="${name}" /> <br>

<c:remove var="name" scope="request" /> <br>

通过标签获取name: <c:out value="${name}" /> <br>

步骤 3 : if else

JSTL通过<c:if test=""> 进行条件判断

但是JSTL没有<c:else,所以常用的办法是在<c:if的条件里取反

配合if使用的还有通过empty进行为空判断
empty可以判断对象是否为null,字符串长度是否为0,集合长度是否为0

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" import="java.util.*"%>

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

<c:set var="hp" value="${10}" scope="request" />

<c:if test="${hp<5}">

    <p>这个英雄要挂了</p>

</c:if>

<c:if test="${!(hp<5)}">

    <p>这个英雄觉得自己还可以再抢救抢救</p>

</c:if>

<% 

    pageContext.setAttribute("weapon"null);

    pageContext.setAttribute("lastwords""");

    pageContext.setAttribute("items"new ArrayList());

%>

<c:if test="${empty weapon}">

    <p>没有装备武器</p>

</c:if>

<c:if test="${empty lastwords}">

    <p>挂了也没有遗言</p>

</c:if>

<c:if test="${empty items}">

    <p>物品栏为空</p>

</c:if>

步骤 4 : choose

虽然JSTL没有提供else标签,但是提供了一个else功能的标签

<c:choose>

        <c:when test="${hp<5}">

    </c:when>

    <c:otherwise>

    </c:otherwise>

</c:choose>

我个人觉得看上去繁琐,还是习惯用<c:if test="!" 来表示else

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" import="java.util.*"%>

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

<c:set var="hp" value="${3}" scope="request" />

<c:choose>

    <c:when test="${hp<5}">

        <p>这个英雄要挂了</p>

    </c:when>

    <c:otherwise>

        <p>这个英雄觉得自己还可以再抢救抢救</p>

    </c:otherwise>

</c:choose>

步骤 5 : forEach

可以在JSP中使用for循环,但是其可读性很差。 借助JSTL的c:forEach标签,可以改善可读性

在本例中,分别使用for循环和<c:forEach标签来演示遍历一个List的区别

<c:forEach items="${heros}" var="hero" varStatus="st"  >

items="${heros}" 表示遍历的集合
var="hero" 表示把每一个集合中的元素放在hero上
varStatus="st" 表示遍历的状态

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" import="java.util.*"%>

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

<%

    List<String> heros = new ArrayList<String>();

    heros.add("塔姆");

    heros.add("艾克");

    heros.add("巴德");

    heros.add("雷克赛");

    heros.add("卡莉丝塔");

    request.setAttribute("heros",heros);

%>

<!-- 使用jsp中的for循环来遍历List -->

<table width="200px" align="center" border="1" cellspacing="0">

<tr>

    <td>编号</td>

    <td>英雄</td>

</tr>

  

<%

int i =0;

for (String hero : heros) {

i++;

%>

 

<tr>

    <td><%=i%></td>

    <td><%=hero%></td>

</tr>

 

<%}%>

  

</table>

<br>

<!-- 使用JSTL中的c:forEach 循环来遍历List -->

<table width="200px" align="center" border="1" cellspacing="0">

<tr>

    <td>编号</td>

    <td>英雄</td>

</tr>

  

<c:forEach items="${heros}" var="hero" varStatus="st"  >

    <tr>

        <td><c:out value="${st.count}" /></td>

        <td><c:out value="${hero}" /></td>

    </tr>

</c:forEach>

</table>

步骤 6 : forTokens

<c:forTokens专门用于字符串拆分,并且可以指定多个分隔符

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" import="java.util.*"%>

 

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

 

<c:set var="heros" value="塔姆,艾克;巴德|雷克赛!卡莉丝塔" /> 

<c:forTokens items="${heros}" delims=":;|!" var="hero">

    <c:out value="${hero}" /> <br />

</c:forTokens>

步骤 7 : fmt:formatNumber 格式化数字

fmt 标签常用来进行格式化,其中fmt:formatNumber用于格式化数字
使用之前要加上

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

<fmt:formatNumber type="number" value="${money}" minFractionDigits="2"/>

<fmt:formatNumber 表示格式化数字
minFractionDigits 小数点至少要有的位数
maxFractionDigits 小数点最多能有的位数

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" import="java.util.*"%>

    

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

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

<c:set var="money" value="888.8" />

<c:set var="pi" value="3.1415926" />

最少两个小数点:

<fmt:formatNumber type="number" value="${money}" minFractionDigits="2"/>

<br>

最多两个小数点:

<fmt:formatNumber type="number" value="${pi}" maxFractionDigits="2" />

步骤 8 : fmt:formatDate 格式化日期

fmt 标签常用来进行格式化,其中fmt:formatDate 用于格式化日期
和fmt:formatNumber 格式化数字一样,使用之前要加上

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

<fmt:formatDate value="${now}" pattern="G yyyy年MM月dd日 E"/>

<fmt:formatDate value="${now}" pattern="a HH:mm:ss.S z"/>

<fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss"/>

<fmt:formatDate 表示格式化日期
yyyy 表示年份
MM 表示月份
dd 表示日期
E 表示星期几

a 表示是上午还是下午
HH 表示小时
mm 表示分钟
ss 表示秒
S 表示毫秒
z 表示时区

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" import="java.util.*"%>

    

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

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

<%

    Date now = new Date();

    pageContext.setAttribute("now",now);

%>

完整日期: <fmt:formatDate value="${now}" pattern="G yyyy年MM月dd日 E"/><br>

完整时间: <fmt:formatDate value="${now}" pattern="a HH:mm:ss.S z"/><br>

常见格式: <fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss"/>

步骤 9 : fn:

更多内容,点击了解: https://how2j.cn/k/jsp/jsp-jstl/578.html

JSP系列教材 (十)- JSTL Java Standard Tag Library 标准标签库相关推荐

  1. java标签库 taglib pdf格式_JSP系列教材 (十)- JSTL Java Standard Tag Library 标准标签库...

    JSTL JSP Standard Tag Library 标准标签库 JSTL允许开人员可以像使用HTML标签 那样在JSP中开发Java功能. JSTL库有core, i18n, fmt, sql ...

  2. JSP-JSTL(Java Standard Tag Library即java标准标签库)

    JSTL JSP Standard Tag Library 标准标签库 JSTL允许开人员可以像使用HTML标签 那样在JSP中开发Java功能. JSTL库有core, i18n, fmt, sql ...

  3. Javaweb(JSTL)—— ——Sun公司指定标准标签库

    JSTL 提示:( JavaServer Pages Standard Tag Library),简称JSTL. 在JSP诞生之初,JSP提供了在HTML代码中嵌入Java代码的特性,这使得开发者可以 ...

  4. Standard Template Library标准模板库专项复习总结(一)

    看了看博客园的申请时间也一年多了...想想自己一年多以来一直处于各种划水状态,现在又要面临ACM的冲击... 还是要抓紧时间赶紧复习一下了- -毕竟校园新生赛还是有奖金的.. 1.栈 先进后出(LIF ...

  5. Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库

    前面为JSTL中的常用EL函数,后面的为具体演示实例! JSTL简介: JSTL(Java Standard Tag Library) –Java标准标签库. SUN公司制定的一套标准标签库的规范. ...

  6. JSP标准标签库JSTL总结

    JSP标准标签库JSTL总结 J STL封装了JSP应用的通用核心功能.     标签分5类:核心标签,格式化标签,SQL标签,XML标签,JSTL函数. JSTL库安装     Tomcat安装JS ...

  7. 使用JSP的标准标签库JSTL处理XML格式的数据

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. 下载地址:https://archive.apache.org/dist/jakarta/taglibs/stan ...

  8. JSTL(Java 标准标签库)

    文章目录 JSTL 简介 JSTL 可以使用在哪里 JSTL 使用步骤 使用标签 if 语句 选择语句 迭代遍历语句 URL重写 设置属性值 删除属性值 异常捕获 导入其它 JSP 页面 重定向 输出 ...

  9. JSP标准标签库(JSTL)--简介

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

最新文章

  1. 测中策---我的Web自动化测试思路
  2. ASP.Net MVC如何访问的静态页面
  3. 将php-fpm添加至service服务
  4. python matplotlib.pyplot如何绘制实时图表?(实时绘制、更新图表、实时更新、动态窗口)plt.ion() plt.clf() plt.pause() plt.ioff()
  5. 开发办公APP时间估算
  6. Windows Server 2012 R2 VDI系列(一)—环境简介
  7. 悉尼大学 伦敦大学联合出品:知识蒸馏最新综述
  8. 大话数据结构:多路查找
  9. 【IT笔试面试题整理】二叉树中和为某一值的路径--从根到叶子节点
  10. php页面开发,PHP网站开发中常用的8个小技巧
  11. 数据改写-数据科学导论
  12. golang 数组组合成最小的整数_Redis之整数集合底层实现
  13. 多年收集的一些稀有软件4
  14. C语言小程序-学生成绩统计系统
  15. 锁相环(PLL)专题一:鉴相器PD
  16. 首先,打破一切常规 学习笔记 之五
  17. 3月盘点众厂商 云计算劳模大奖颁给谁
  18. Hedge fund Two Sigma hires Alfred Spector as Chief Technology Officer
  19. 动态规划 最长不下降子序列
  20. c++#学生平均成绩,学号排序

热门文章

  1. TMS320C6748开发视频教程笔记 第7章 启动与烧写
  2. 检查内存泄露的工具--valgrind
  3. 安卓手机使用数据线和电脑联网设置说明
  4. 导入excel每行的图片并上传(参考。因为不一定适合你)
  5. 四川星利恒:拼多多想退运费要怎么做
  6. linux创建用户指定用户目录,linux创建用户并指定用户的默认目录 bash-4.2$
  7. poj2189 凸包
  8. 新生必备清单:不想成为虚度青春的“小透明”,手机应该怎样选?
  9. 我在CSDN学生大本营的第一步,一切都充满希望
  10. 你希望这些事是真的吗?[转]