一、介绍:

​ 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. 资源:CentOS下载地址资源

    新版本系统镜像下载(当前最新是CentOS 7.4版本) CentOS官网 官网地址 http://isoredirect.centos.org/centos/7.4.1708/isos/x86_64 ...

  2. 苦B程序员的数据验证之路

    发生了什么事 在一次苦B程序员和苦C程序员的结对编程中发生的一段对话 代码是这样的: public void deleteAllExtendAclsFromContent(String content ...

  3. nginx开启tls1.2及一些注意问题

    因为http传输是明文,通过抓包很容易获取到报文, 所以现在很多站点都开启了https,HTTPS在HTTP的基础上加入了SSL协议,对传输的数据进行加密. 目前主流的ssl协议是tlsv1.2 ng ...

  4. PHP递归创建多级目录(一道面试题的解题过程)(转)

      今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @m ...

  5. [小技巧] google map使用

    在网页中打开 google map 中,可以使用 shift + - 来缩小地图,shift + + 来放大地图.

  6. Spring Boot 2.x基础教程:使用@Scheduled实现定时任务

    我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参数等. 创建定时任务 在Spring Boot中编写定时 ...

  7. 章节1-Prometheus基础(1)

    目录 一.Prometheus安装部署 1. 简介 监控的目的 Prometheus的优势 2. Prometheus工作流程: 2.1 服务端 2.2 客户端 2.3 metrics主要数据类型 3 ...

  8. Luogu P2051「AHOI2009」中国象棋

    看见第一眼觉得是状压 \(\text{DP}\)?观察数据范围发现不可做 那按照最常规思路设状态试试? 设状态为\(dp[i][j]\)表示\(i*j\)的棋盘的方案数 好像转移不了欸 要不再来一维? ...

  9. [刘阳Java]_Spring入门_第1讲

    Spring框架在企业中的使用非常多,优势明显.所以学好Spring框架肯定不言而喻.今天我们给大家介绍Spring的入门 1. 对于初学者来说我们要学习Spring框架中的哪些技术,这个有必要了解一 ...

  10. 【模拟】报名签到 luogu-4445

    AC代码 #include <bits/stdc++.h> using namespace std; #define ms(a,b) memset(a,b,sizeof(a)) typed ...