1. 程式人生 > 其它 >37.2 jsp中jstl、jstl標籤(if標籤、choose標籤、foreach標籤)

37.2 jsp中jstl、jstl標籤(if標籤、choose標籤、foreach標籤)

技術標籤:02 javaee

目錄

1 JSP標準標籤庫(JSTL)

2常用的JSTL標籤

2.1 if標籤

2.2choose標籤

2.3 foreach標籤

2.3.1 列:foreach標籤實現迴圈

2.3.2列:foreach標籤實現迴圈


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>

結果: