JSTL标签工具类
一、介绍:
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标签工具类的更多相关文章
- Java过滤HTML标签工具类
过滤HTML标签能有效的放置XSS攻击. 封装: import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springf ...
- 第13天 JSTL标签、MVC设计模式、BeanUtils工具类
第13天 JSTL标签.MVC设计模式.BeanUtils工具类 目录 1. JSTL的核心标签库使用必须会使用 1 1.1. c:if标签 1 1.2. c:choos ...
- JavaWeb基础Day17 (JSP EL表达式 jstl标签库 beanutil工具类)
JSP jsp的实质就是指在html界面中嵌入Java代码 jsp脚本 <% Java代码 %> 相当于写在service方法中. <%=java 变量或者表达式 %> ...
- 安卓Html标签,创意工具类
之前开发项目中,遇到了在Textview中使用Html标签的情形,由于在代码中使用字符串,Android Studio上一堆的黄色警告,而且对于过时的Html.fromHtml,拿它一点办法也没有. ...
- .Net Excel 导出图表Demo(柱状图,多标签页) .net工具类 分享一个简单的随机分红包的实现方式
.Net Excel 导出图表Demo(柱状图,多标签页) 1 使用插件名称Epplus,多个Sheet页数据应用,Demo为柱状图(Epplus支持多种图表) 2 Epplus 的安装和引用 新建一 ...
- 自定义jstl标签库
开发环境:Spring+SpringMVC +Maven +Mybatis JSTL 标签库的配置: 导入对应的 jstl.jar 和 standard.jar ,我使用的配置如下: <prop ...
- jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门
一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...
- jsf标签,jsp标签与jstl标签
JSF通过定制标签与JSP集成.之前展示过的所有 JSF标签,<h:inputText>.<h:outputText>.<h:form> 和<f:view&g ...
- JavaWeb基础—EL表达式与JSTL标签库
EL表达式: EL 全名为Expression Language.EL主要作用 获取数据(访问对象,访问数据,遍历集合等) 执行运算 获取JavaWeb常用对象 调用Java方法(EL函数库) 给出一 ...
随机推荐
- linux sort uniq命令详解
sort 功能说明:将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序. sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+&l ...
- python mqtt通信(windows)
一.消息队列服务器 这里我用到activemq,可到官网下载 http://activemq.apache.org/ 1. 若遇到点击apache-activemq-5.16.2\bin\acti ...
- C++ 标准模板库(STL)——容器(Containers)的用法及理解
C++ 标准模板库(STL)中定义了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量(vector).队列(queue).栈(stack).set.map等.这次主要 ...
- IDEA 生成类注释和方法注释
目录 一.生成类注释-01 1.1.生成类注解模板 1.2.把模板设置到IDEA中 1.3.效果图 二.生成类注释-02 2.1.生成类注释模板 2.2.把模板设置到IDEA中 2.3.效果图 2.4 ...
- 打造一个window桌面应用:在线聊天对话机器人
大家好,我是辰哥~~~ 本文目标:打造一个window桌面应用:在线聊天对话机器人. 今天辰哥教大家做一个在线聊天对话机器人桌面应用,已经打包成exe可执行文件,读者可以直接拿来使用, 先上演示图 聊 ...
- 算法基础~链表~排序链表的合并(k条)
算法基础~链表~排序链表的合并(k条) 1,题意:已知k个已排序链表头结点指针,将这k个链表合并,合并后仍然为有序的,返回合并后的头结点. 2,方法之间时间复杂度的比较: 方法1(借助工具vector ...
- Day8 方法详解及递归思想.
何为方法 Java方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 设计方法的原则: 方法的本意是功能块,就是实 ...
- 如何在cmd中运行.py文件
C:\Users\mf>cd C:\Program Files\Python36\ C:\Program Files\Python36>python const.py 切换到.py文件所在 ...
- 【codeforces1058】Vasya and Golden Ticket 枚举+暴力+模拟
#点击传送 题目描述 Recently Vasya found a golden ticket - a sequence which consists of nn digits a1a2-ana1a2 ...
- springboot多个service互相调用的事务处理(十三)
在一个service的方法A中,调用另一个service的方法B,方法A和方法B均存在数据库插入操作,需要添加如下配置: @Transactional(rollbackFor = Exception. ...