22- JSTL
程序员文章站
2024-01-27 22:34:22
...
1 JSTL介绍
- JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
- 使用JSTL实现JSP页面中逻辑处理。如判断、循环等。
2 JSTL 使用
2.1 通用标签: set、 out、 remove
test.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>JSTL标签库</title>
</head>
<body>
<%--
1. 导入 JSTL 的jar 包,然后在jsp页面顶部引入 JSTL标签库
2. 在 jsp 使用 c: 形式使用标签
--%>
<%--
set : 存一个变量
out : 取值
remove: 从作用域移除变量
--%>
设置num<c:set var="num" value="666"></c:set><br>
取出num<c:out value="${num}" ></c:out><br>
移除num<c:remove var="num"></c:remove><br>
再次取出num<c:out value="${num}" default="0"></c:out>
</body>
</html>
2.2 条件标签 if, choose
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>JSTL标签库</title>
</head>
<body>
<c:set var="x" value="10"></c:set>
<c:if test="${ x > 9}"> x 大于 9</c:if>
<br>
<c:set var="b" value="2"></c:set>
<c:choose>
<c:when test="${b==1}">
b 的值是1
</c:when>
<c:when test="${b==2}">
b 的值是2
</c:when>
</c:choose>
</body>
</html>
2.3 foreach
- c:forEach中的varStatus属性。
- 指向一个字符串,该字符串引用一个对象。 map.put(“vs”,一个对象);
- 这个对象记录着当前遍历的元素的一些信息:
getIndex()
:返回索引。从0开始getCount():
返回计数。从1开始isLast()
:是否是最后一个元素isFirst()
:是否是第一个元素
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>JSTL标签库</title>
</head>
<body>
<c:forEach var ="i" begin="1" end="8" step="2">
${i}<br>
</c:forEach>
</body>
</html>
2.3.1 foreach
表格案例
test.jsp
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL标签库</title>
<style type="text/css">
<%-- 奇数行; .代表类选择器--%>
.odd{
background-color: yellow;
}
.even{
background-color: green;
}
</style>
</head>
<body>
<%
List<String> list = new ArrayList<>();
list.add("张三");
list.add("刘备");
list.add("曹操");
list.add("赵子龙");
list.add("袁绍");
request.setAttribute("list", list);
%>
<table border="2">
<tr>
<td>数据</td>
<td>索引</td>
<td>是否第一个</td>
<td>是否最后一个</td>
<td>计数</td>
</tr>
<%--
items: EL 表达式,一般写作用域数据的key
var : 变量名
--%>
<c:forEach items="${list}" var="name" varStatus="vs">
<tr class="${vs.count % 2 == 0 ? 'even':'odd'} ">
<td>${name}</td>
<td>${vs.index}</td>
<td>${vs.first}</td>
<td>${vs.last}</td>
<td>${vs.count}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
上一篇: MySQL安装教程来了来了