目录
1. JSTL的概述:
JSTL的全称是:JSP Standard Tag Libary。它是JSP中标准的标签库。它是由Apache实现的。
它由以下5个部分组成:
组成 作用 说明 Core 核心标签库。 通用逻辑处理 Fmt 国际化有关。 需要不同地域显示不同语言时使用 Functions EL函数 EL表达式可以使用的方法 SQL 操作数据库。 不用 XML 操作XML。 不用
2. JSTL的使用前提:
要想使用JSTL标签库,在javaweb工程中需要导入坐标。首先是在工程的WEB-INF目录中创建一个lib目录,接下来把jstl的jar拷贝到lib目录中,最后在jar包上点击右键,然后选择【Add as Libary】添加。如下图所示:
创建JSP, 引入标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title></title> </head> <body> </body> </html>
3. JSTLL核心标签库(最常用到的3个标签)
标签名称 | 功能分类 | 分类 | 作用 |
---|---|---|---|
<c:if> | 流程控制 | 核心标签库 | 用于判断 |
<c:choose> ,<c:when>,<c:otherwise> | 流程控制 | 核心标签库 | 用于多个条件判断 |
<c:foreache> | 迭代操作 | 核心标签库 | 用于循环遍历 |
3.1 if语句
属性:
- test 为必须属性,接受boolean表达式
- 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容
- 一般情况下,test属性值会结合el表达式一起使用
注意:
- c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
request.setAttribute("msg","");
request.setAttribute("num",10);
%>
<c:if test="${empty msg}">
字符串为空串
</c:if>
<c:if test="${not empty msg}">
字符串不为空串
</c:if>
<c:if test="${num%2==0}">
数字是偶数
</c:if>
<c:if test="${num%2!=0}">
数字是奇数
</c:if>
</body>
</html>
3.2 choose语句
choose:
- 使用choose标签声明 相当于switch声明。
- 使用when标签做判断 相当于case。
- 使用otherwise标签做其他情况的声明 相当于default。
<%
request.setAttribute("num",10);
%>
<c:choose>
<c:when test="${num==1}">周一</c:when>
<c:when test="${num==2}">周二</c:when>
<c:when test="${num==3}">周三</c:when>
<c:when test="${num==4}">周四</c:when>
<c:when test="${num==5}">周五</c:when>
<c:when test="${num==6}">周六</c:when>
<c:when test="${num==7}">周日</c:when>
<c:otherwise>数字有误!</c:otherwise>
</c:choose>
3.3 foreeach语句
foreeach:
- begin:开始值
- end:结束值
- var:临时变量
- step:步长
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--
begin:开始值
end:结束值
var:临时变量
step:步长,每次加多少
--%>
<c:forEach begin="1" end="10" var="i" step="2">
${i}--
</c:forEach>
</body>
</html>
foreeach操作list集合时:
- items:要遍历那一个容器。
- var:每次遍历出来的对象。
- varStatus:包含着当前对象的编号,索引等信息。
- index:容器中元素的索引,从0开始。
- count:循环次数,从1开始。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
ArrayList<String> list = new ArrayList<>();
list.add("德玛西亚");
list.add("洛克萨斯");
list.add("艾欧里亚");
list.add("均衡教派");
list.add("暗影岛");
request.setAttribute("list",list);
%>
<br>
<%--
items:要遍历那一个容器
var : 每次遍历出来的对象
varStatus:包含着当前对象的编号,索引等信息
--%>
<c:forEach items="${list}" var="s" varStatus="x">
${x.index}--${x.count}--${s}<br>
</c:forEach>
</body>
</html>
如果对你有帮助,请帮我点一下赞,我才有动力继续创作,谢谢!