37.2 jsp中jstl、jstl標籤(if標籤、choose標籤、foreach標籤)
阿新 • • 發佈:2021-02-05
技術標籤:02 javaee
目錄
1 JSP標準標籤庫(JSTL)
- (JavaServer Pages Tag Library )JSP標準標籤庫 是由Apache組織提供的開源的免費的jsp標籤 <標籤>
- JSTL封裝了JSP應用的通用核心功能。
- JSTL支援通用的、結構化的任務,比如迭代,條件判斷,XML文件操作,國際化標籤,SQL標籤。 除了這些,它還提供了一個框架來使用整合JSTL的自定義標籤。
- 根據JSTL標籤所提供的功能,可以將其分為5個類別。(1核心標籤 2格式化標籤 3SQL標籤4XML標籤5JSTL 函式)
JSTL作用:用於簡化和替換jsp頁面上的java程式碼
使用步驟:
1. 匯入jstl相關jar包 javax.servlet.jsp.jstl.jar jstl-impl.jar
2. 引入標籤庫:taglib指令: <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3. 使用標籤
2常用的JSTL標籤
2.1 if標籤
-
if:相當於java程式碼的if語句 如:<c:if test="${msg%2!=0}"> ${msg}為奇數 </c:if>
- 屬性:test 必須屬性,接受boolean表示式 如果表示式為true,則顯示if標籤體內容,如果為false,則不顯示標籤體內容
注意: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>jstl1</title> </head> <body> <% request.setAttribute("msg",100); List list = new ArrayList(); list.add("aaa"); request.setAttribute("list",list); %> <c:if test="${msg%2!=0}"> ${msg}為奇數 </c:if><br> <c:if test="${ msg%2==0 }"> ${msg}為偶數 </c:if><br> <c:if test="${not empty list}"> 開始遍歷集合 </c:if> </body> </html>
2.2choose標籤
. choose:相當於java程式碼的switch語句
1. 使用choose標籤宣告 相當於switch宣告
2. 使用when標籤做判斷 相當於case
3. 使用otherwise標籤做其他情況的宣告 相當於default
<%@ 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>jstl2</title>
</head>
<body>
<% request.setAttribute("msg",1);
%>
<c:choose>
<c:when test="${msg%7==0}">星期天</c:when>
<c:when test="${msg%7==1}">星期一</c:when>
<c:when test="${msg%7==2}">星期二</c:when>
<c:when test="${msg%7==3}">星期三</c:when>
<c:when test="${msg%7==4}">星期四</c:when>
<c:when test="${msg%7==5}">星期五</c:when>
<c:when test="${msg%7==6}">星期六</c:when>
<c:otherwise>輸入有誤</c:otherwise>
</c:choose>
</body>
</html>
2.3 foreach標籤
foreach:相當於java程式碼的for語句
2.3.1 列:foreach標籤實現迴圈
屬性:begin:開始值 end:結束值 var:臨時變數 step:步長 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>jstl3</title>
</head>
<body>
<%--
--%>
<% request.setAttribute("msg",1);
%>
<c:forEach begin="10" end="22" step="3" var="i" varStatus="ss">
[var=${i} index=${ss.index} count= ${ss.count}]<br>
</c:forEach>
</body>
</html>
結果:
2.3.2列:foreach標籤實現迴圈
<%@ 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>jstl3</title>
</head>
<body>
<% List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("cc
c");
request.setAttribute("list",list);
%>
<c:forEach items="${list}" var="str" varStatus="s">
[${s.index}--${s.count}--${str}]<br>
</c:forEach>
</body>
</html>
結果: