一、介绍:

​ 1.Jsp Standrad Tag Lib: JSP中标准的标签工具类

​ 2.由 sun公司 提供

​ 3.组成:(1)核心标签:Java在jsp上基本功能进行封装 if while

​ (2)SQL标签:JDBC在JSP上使用功能

​ (3)xml标签:DOM4J在JSP上使用功能

​ (4)Format标签:JSP文件格式转换

二、配置:

1.导入依赖 jar: jstl.jar standard.jar

        <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>

2.在JSP文件引入JSTL中core包依赖约束

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

三、标签使用:

1.<c:set>:

​ 作用:在JSP文件上设置域对象中共享数据

​ 使用:<c:set scope="session" var="key" value="10"/>

​ 代替:<% session.setAttribute("key","10"); %>

​ 属性:scope:指定操作对象别名

​ scope="application/session/request/page"

​ var:声明域对象中关键字

​ value:存入的共享数据

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"  language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:set scope="application" var="sid" value="10"/>
<c:set scope="session" var="sname" value="mike"/>
<c:set scope="request" var="age" value="24"/>
<c:set scope="page" var="home" value="上海"/> 学员编号:${applicationScope.sid}<br>
学员姓名:${sessionScope.sname}<br>
学员年龄:${requestScope.age}<br>
学员籍贯:${pageScope.home}<br>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%--设置用户今年的年龄--%>
<c:set scope="request" var="age" value="20"/>
<%--设置用户两年之后的年龄--%>
<c:set scope="request" var="age" value="${requestScope.age+2}"/> 用户两年之后的年龄:${requestScope.age}

2.<c:if>

​ 作用:在JSP文件上控制哪些内容可以写入到响应体中

​ 使用:

<c:if test="通过EL表达式进行判断">

内容

</c:if>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:set scope="session" var="age" value="20"/> <c:if test="${sessionScope.age ge 18}">
<font color="red">欢迎光临</font>
</c:if> <c:if test="${sessionScope.age lt 18}">
<font color="red">过两年再来</font>
</c:if>

3.<c:choose>

​ 作用:在JSP文件上实现多分支选择判断,决定哪一个内容写入到响应体

​ 使用:

<c:choose>

​ <c:when test="EL表达式进行判断">内容1</c:when>

​ <c:when test="EL表达式进行判断">内容2</c:when>

​ <c:otherwisse>内容3</c:otherwisse>

​ </c:choose>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:set scope="page" var="sal" value="15000"/> <c:choose>
<c:when test="${sal ge 50000}">高工资</c:when>
<c:when test="${sal ge 20000}">正常工资</c:when>
<c:when test="${sal ge 10000}">低工资</c:when>
<c:otherwise>不正常工资</c:otherwise>
</c:choose>

4.<c:forEach>

​ 作用:循环遍历

   第一种使用方式:
<c:forEach var="声明循环变量名称" begin="初始化循环变量" end="循环变量的最大值" step="递增或递减值">
内容
</c:forEach>
***step属性可以不写,默认每次递增加一
***循环变量被保存在 pageContext 中
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
Java实现:
<select>
<%
for (int i = 1; i < 5; i++) {
%>
<option>第<%=i%>页</option>
<%
}
%>
</select>
<br>
JSTL实现:
<select>
<c:forEach var="i" begin="1" end="5" step="1">
<option>第${pageScope.i}页</option>
</c:forEach>
</select>
第二种写法
<c:forEach items="通过EL表达式获得域对象集合" var="声明循环变量">
${循环变量.对象属性名}
</c:forEach> <%--例子--%>
<table border="2">
<tr>
<td>学员编号</td>
<td>学员姓名</td>
</tr>
<c:forEach items="${key}" var="stu">
<tr>
<td>${stu.sid}</td>
<td>${stu.sname}</td>
</tr>
</c:forEach>
</table>
<h1>遍历map</h1>
<table border="2">
<tr>
<td>班级名称</td>
<td>学员编号</td>
<td>学员名称</td>
</tr> <%--
遍历map时,每次从map集合得到一个【键值对】
【键值对】交给循环变量
循环变量.key 获得【键值对】中关键字名字 班级名称
循环变量.value 获得【键值对】中内容 stu对象
--%>
<c:forEach items="${mapKey}" var="key_value">
<tr>
<td>${key_value.key}</td>
<td>${key_value.value.sid}</td>
<td>${key_value.value.sname}</td>
</tr>
</c:forEach>
</table>

JSTL标签工具类的更多相关文章

  1. Java过滤HTML标签工具类

    过滤HTML标签能有效的放置XSS攻击. 封装: import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springf ...

  2. 第13天 JSTL标签、MVC设计模式、BeanUtils工具类

    第13天 JSTL标签.MVC设计模式.BeanUtils工具类 目录 1.    JSTL的核心标签库使用必须会使用    1 1.1.    c:if标签    1 1.2.    c:choos ...

  3. JavaWeb基础Day17 (JSP EL表达式 jstl标签库 beanutil工具类)

    JSP jsp的实质就是指在html界面中嵌入Java代码 jsp脚本 <%  Java代码  %>  相当于写在service方法中. <%=java 变量或者表达式 %> ...

  4. 安卓Html标签,创意工具类

    之前开发项目中,遇到了在Textview中使用Html标签的情形,由于在代码中使用字符串,Android Studio上一堆的黄色警告,而且对于过时的Html.fromHtml,拿它一点办法也没有. ...

  5. .Net Excel 导出图表Demo(柱状图,多标签页) .net工具类 分享一个简单的随机分红包的实现方式

    .Net Excel 导出图表Demo(柱状图,多标签页) 1 使用插件名称Epplus,多个Sheet页数据应用,Demo为柱状图(Epplus支持多种图表) 2 Epplus 的安装和引用 新建一 ...

  6. 自定义jstl标签库

    开发环境:Spring+SpringMVC +Maven +Mybatis JSTL 标签库的配置: 导入对应的 jstl.jar 和 standard.jar ,我使用的配置如下: <prop ...

  7. jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门

    一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...

  8. jsf标签,jsp标签与jstl标签

    JSF通过定制标签与JSP集成.之前展示过的所有 JSF标签,<h:inputText>.<h:outputText>.<h:form> 和<f:view&g ...

  9. JavaWeb基础—EL表达式与JSTL标签库

    EL表达式: EL 全名为Expression Language.EL主要作用 获取数据(访问对象,访问数据,遍历集合等) 执行运算 获取JavaWeb常用对象 调用Java方法(EL函数库) 给出一 ...

随机推荐

  1. docker基本操作和部署

    #安装所需的软件包.yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data ...

  2. APP-SECURITY-404 组件导出漏洞复现

    参考资料:https://github.com/wnagzihxa1n/APP-SECURITY-404/blob/master/2.%E7%BB%84%E4%BB%B6%E5%AF%BC%E5%87 ...

  3. windows服务器下MySQL配置字符集

    这俩天公司使用.netcore微服务+mysql做项目,mysql在使用的时候总是出现一些字符集的问题,修改utf8或utf8mb4后mysql的服务就启动不了,这里做下记录如果把my.ini中的字符 ...

  4. 视图:DBA_TAB_PARTITIONS 分区表视图

    Column Datatype 释义 Description TABLE_OWNER VARCHAR2(128) 表的owner Owner of the table TABLE_NAME VARCH ...

  5. GO系列-ini文件处理

    gopkg.in/ini.v1 配置加载 创建一个空的配置 cfg := ini.Empty() 直接加载存在的配置文件,如果文件不存在就会报错 cfg, err := ini.Load(" ...

  6. QT单进程下载

    QT    同步下载 #include <QNetworkAccessManager> #include <QNetworkRequest> #include <QNet ...

  7. 微软商业智能系列(一)初识微软BI

    随着移动互联网.云计算.物联网和大数据技术的广泛应用,社会已经迈入全新的数据时代.掌握数据资产,进行智能化决策,已成为企业胜出的关键.越来越多的企业开始重视数据战略布局,重新定义自己的核心竞争力,从数 ...

  8. 前端009-vue框架

    vue-admin-element https://panjiachen.github.io/vue-element-admin-site/zh/ 基于vue的生态做的很好,提供的很多的文档,中文.并 ...

  9. 教你 PXE高效批量网络装机

    PXE高效批量网络装机一.PXE概述① PXE (Preboot eXcution Environment)② PXE批量部署的优点③ 服务端④ 客户端二.部署PXE远程安装服务搭建PXE远程安装服务 ...

  10. 【011】JavaSE面试题(十一):多线程(1)

    第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [011] - JavaSE面试题(十一):多线程(1) 第1问:线程和进程的区别? 进程:具有一 ...