JSTL的核心标签库使用
1 jstl标签的基本概述
JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样, 也是要放到jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是它的核心库Core
标签库 | 标签库的URI | 前缀 |
---|---|---|
Core | http://java.sun.com/jsp/jstl/core | c |
http://java.sun.com/jsp/jstl/fmt | fmt | |
http://java.sun.com/jsp/jstl/sql | sql | |
http://java.sun.com/jsp/jstl/xml | x | |
http://java.sun.com/jsp/jstl/functions | fn |
2 jstl标签的安装
2.1 导入jar包
javax.servlet.jsp.jstl.jar
standard.jar
2.2 使用taglib指令在jsp页面导入要使用的jstl标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
在jsp书写"<c:",看到如下提示,说明安装成功:
3 常用的jstl标签
jstl的核心标签内容有很多,现在目前还常用的标签只有if、foreach标签。
3.1 if标签
-
if标签作用:起到java代码的判断的作用
-
if标签属性介绍:
-
test:判断是否执行标签内的内容(true——执行标签中的内容,false,不执行)。
-
var:用来保存test属性的结果(使用var属性给他取个名字),这个结果可以保存到指定的web域中, 默认保存在pageContext域。
-
scope:指定保存数据的到哪个web域。
-
-
if标签演示
<%--
if标签的使用
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
int num=10;
pageContext.setAttribute("num",num);
%>
<c:if test="${num>5}">
num 大于5
</c:if>
<c:if test="${num<=5}">
num 小于等于5
</c:if>
<%--将判断结果 保存到var属性中, 并指定存到的域对象--%>
<c:if test="${num == 100}" var="result" scope="request">
</c:if>
<h3>取出域对象中的值</h3>
${result}
</body>
</html>
3.2 forEach标签 重点重点重点
-
forEach标签作用:起到java代码的for循环作用
-
forEach标签属性介绍:
- var:在不循环对象的时候,保存的是控制循环的变量;在循环对象的时候,保存的是被循环对象中的元素
- items:指定要循环的对象
- varStatus:保存了当前循环过程中的信息(循环的开始、结束、步长、次数等)
- begin:设置循环的开始
- end:设置循环的结束
- step:设置步长
-
foreach演示
<%@ page import="com.itheima.pojo.User" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%--
forEach标签的使用
--%>
<%@ 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>
<%--foreach标准循环--%>
<c:forEach begin="1" end="5" var="i" step="2">
${i}<br>
</c:forEach>
<%--准备集合数据到域中,用于遍历--%>
<%
List<User> list = new ArrayList<User>();
list.add(new User("迪丽热巴","1234566"));
list.add(new User("古力娜扎", "abcdef"));
request.setAttribute("list",list);
%>
<%--foreach遍历集合--%>
<c:forEach items="${list}" var="user" varStatus="vs">
${user.username} == ${user.password} == ${vs.count} <br>
</c:forEach>
</body>
</html>