一、什么是JSTL?
现有问题
- EL主要用于作用域获取数据,输入可以做运算判断,但是得到的都是一个结果,做展示
- EL不存在流程控制。比如判断
- EL对集合只能做单个访问,不能实现遍历操作,比如循环
JSTL全称Java Server Pages Standard Tag Library JSP标准标签库(JSTL)是一个JSP标签集合
二、JSTL使用
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="lyx"%>
三、核心标签
3.1 if判断
例题
3.2 choose判断
3.3 迭代foreach标签
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="lyx" %>
<html>
<head>
<title></title>
</head>
<body>
<%
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
request.setAttribute("list", list);
%>
<lyx:forEach var="a" items="${list}" begin="0" end="3" step="2" varStatus="iii">
<h1>
当前变量的值为:${a}<br/>
遍历间隔长度为:${iii.step}<br/>
数组最后一个变量下标是:${iii.end}<br/>
数组第一个变量下标是:${iii.begin}<br/>
当前遍历的第几个变量:${iii.count}<br/>
当前变量的值为:${iii.current}<br/>
当前变量是否为第一个:${iii.first}<br/>
当前变量是否为本次遍历的所有变量的最后一个(没有被遍历的不算):${iii.last}<br/>
当前数组下标是:${iii.index}<br/>
<hr/>
</h1>
</lyx:forEach>
</body>
</html>
运行结果
当前变量的值为:A 遍历间隔长度为:2 数组最后一个变量下标是:3 数组第一个变量下标是:0 当前遍历的第几个变量:1 当前变量的值为:A 当前变量是否为第一个:true 当前变量是否为本次遍历的所有变量的最后一个(没有被遍历的不算):false 当前数组下标是:0
当前变量的值为:C 遍历间隔长度为:2 数组最后一个变量下标是:3 数组第一个变量下标是:0 当前遍历的第几个变量:2 当前变量的值为:C 当前变量是否为第一个:false 当前变量是否为本次遍历的所有变量的最后一个(没有被遍历的不算):true 当前数组下标是:2
3.4 url标签
注意在a标签的href里面<c:url>的context属性的值要用单引号
|