JSTL
概念:
JavaServer Pages Tag Library JSP标准标签库
是由Apache组织提供的开源的免费的jsp标签 <标签>
作用:
用于简化和替换jsp页面上的java代码
使用步骤:
- 导入JSTL相关jar包
- 引入标签库: taglib指令: <%@ taglib %>
- 使用标签
常用的JSTL标签
一、if标签
if 相当于java的if
- c:if标签
- 属性:
test必须属性,接受boolean表达式
如果表达式为true,则显示if标签体内容,如果为false, 则不显示标签体内容
一般情况下,test属性值会结合el表达式一 起使用 - 注意: c:if标签没有else情况, 想要else情况, 则可以在定义一个c:if标签
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>if标签</title>
</head>
<body>
<c:if test="true">
<h1>helloworld</h1>
</c:if>
<br>
<%
//判断request域中的一个list集合是否为空,如果不是null则显示遍历集合
List list = new ArrayList<>();
list.add("avbc");
request.setAttribute("list",list);
//存一个数为number
request.setAttribute("number",3);
%>
<c:if test="${not empty list}">
遍历集合。。。
</c:if>
<br>
<%--判断number是否是奇数--%>
<c:if test="${number % 2 != 0}">
${number}为奇数
</c:if>
<c:if test="${number % 2 == 0}">
${number}为偶数
</c:if>
</body>
</html>
二、choose标签
choose 相当于java的switch语句
<%-- 完成数字编号对应星期几案例
1.域中存储一数字
2.使用choose标签取出数字 相当于switch声明
3.使用when标签做数字判断 相当于case
4.otherwise标签做其他声明 相当于default
--%>
<%
request.setAttribute("number",3);
%>
<c:choose>
<c:when test="${number == 1}"><p>星期一</p></c:when>
<c:when test="${number == 2}"><p>星期二</p></c:when>
<c:when test="${number == 3}"><p>星期三</p></c:when>
<c:when test="${number == 4}"><p>星期四</p></c:when>
<c:when test="${number == 5}"><p>星期五</p></c:when>
<c:when test="${number == 6}"><p>星期六</p></c:when>
<c:when test="${number == 7}"><p>星期天</p></c:when>
<c:otherwise>数字有误</c:otherwise>
</c:choose>
三、foreach标签
foreach 相当于java的for语句
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>foreach</title>
</head>
<body>
<%--
foreach:相当于java的for语句
1.完成重复操作
属性:
begin:开始值
end:结束值
var:临时变量
step:步长
varStatus:循环状态对象
index:容器中元素的索引
count:循环次数
--%>
<%--遍历输出1到10--%>
<c:forEach begin="1" end="10" var="i" step="1" varStatus="s">
${i} <br>
index ${s.index}<br>
count ${s.count}<br>
<br>
</c:forEach>
<%--
2.遍历容器
属性:
items:容器对象
var:容器中元素的临时变量
varStatus:循环状态对象
index:容器中元素的索引,从0开始
count:循环次数,1开始
--%>
<%
List list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
request.setAttribute("ls",list);
%>
<c:forEach items="${ls}" var="str" varStatus="s">
${s.index} ${s.count} ${str}<br>
</c:forEach>
</body>
</html>