日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSTL核心标签超详细

發布時間:2023/12/14 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSTL核心标签超详细 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.JSTL介紹

JSTL(JavaServer Pages Standard Tag Library,JSP標準標簽庫)是一個JSP標簽集合,它封裝了JSP應用的通用核心功能。

JSTL支持通用的、結構化的任務,比如迭代,條件判斷,XML文檔操作,國際化標簽,SQL標簽。 除了這些,它還提供了一個框架來使用集成JSTL的自定義標簽。


2.JSTL的使用及分類

要使用JSTL,首先要先下載好jar包,點擊這里進行下載,下載好后,導入項目的WEN-INF的lib目錄下即可,當然,要在jsp中使用JSTL,還得使用@taglib標簽,不過不同的分類情況不一樣,下面我們來看看JSTL標簽的分類。

可以分為4大類和JSTL函數

  • 核心標簽
  • 格式化標簽
  • SQL標簽
  • XML標簽
  • JSTL函數

本文主要介紹核心標簽和JSTL函數。


3.五類標簽的簡介

核心標簽:

在JSP文件開頭使用如下語法

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

格式化標簽:

在JSP文件開頭使用如下語法

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

SQL標簽:

在JSP文件開頭使用如下語法

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

XML標簽:

在JSP文件開頭使用如下語法

<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>

JSTL函數:

在JSP文件開頭使用如下語法

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

下面正式開始介紹核心標簽。


4.JSTL核心標簽

核心標簽庫共有14個標簽,從功能上分為4類

  • 表達式控制標簽:out,set,remove,catch
  • 流程控制標簽:if,choose,when,otherwise
  • 循環標簽:forEach,forTokens
  • URL操作標簽:import,url,redirect,param

下面開始一個一個介紹。都配代碼。

1. out標簽的用法

用于在JSP中顯示數據,就像<%= … >

<!-- 直接輸出常量 --> <c:out value="第一個JSTL小程序"></c:out> <% String name = "CodeTiger"; request.setAttribute("name", name); %> <!-- 使用default屬性 ,當name1的屬性為空時,輸出default屬性的值--> <c:out value="${name1}" default="error"></c:out><br> <!-- 使用escapeXml屬性,設置是否對轉義字符進行轉義,默認為true不轉義 --> <c:out value="&lt;CodeTiger&gt;" escapeXml="false"></c:out><br>

輸出

第一個JSTL小程序 error <CodeTiger>

2.set標簽的用法

用于保存數據

<!-- 通過set標簽存值到scope中,其中var是變量的名稱,value是變量的值,scope表示把變量存在哪個scope中 --> <c:set var="person1" value="CodeTiger" scope="page"></c:set> <c:out value="${person1}"></c:out><br> <!-- 也可以把value的值放在兩個標簽之間 --> <c:set var="person2" scope="session">liu</c:set> <c:out value="${person2}"></c:out><br><!-- 通過set標簽為JavaBean里的屬性賦值 ,首先創建一個JavaBean--> <c:set target="${people}" property="username" value="CodeTiger"></c:set> <c:set target="${people}" property="address" value="NJUPT"></c:set> <c:out value="${people.username}"></c:out>&nbsp;&nbsp; <c:out value="${people.address}"></c:out><br>

輸出

CodeTiger liu CodeTiger NJUPT



3.remove標簽的用法

用于刪除數據

<!-- remove標簽的用法 --> <c:set var="firstName" value="xiaop"></c:set> <c:out value="${firstName}"></c:out> <c:set var="lastName" value="liu"></c:set> <!-- 只能remove某個變量,不能remove掉JavaBean里的屬性值 --> <c:remove var="lastName"/> <c:out value="${lastName}"></c:out><br>

輸出

xiaop



4.catch標簽的用法

用來處理產生錯誤的異常狀況,并且將錯誤信息儲存起來

<!-- catch標簽的用法 --> <c:catch var="error"> <!-- 隨便使用一個沒有定義的JavaBean--><c:set target="${Code}" property="Tiger">CodeTiger</c:set> </c:catch> <c:out value="${error}"></c:out><br>

輸出

javax.servlet.jsp.JspTagException



5.if標簽的用法

與我們在一般程序中用的if一樣

<!-- if標簽的用法 --> <form action="index.jsp" method = "post"> <!-- param為EL的隱式對象,獲取用戶輸入的值 --> <input type = "text" name = "score" value = "${param.score}"> <input type = "submit" value = "提交"> </form> <!-- var中的變量為boolean類型,取決于test中的表達式 --> <c:if test="${param.score >= 90}" var="grade" scope="session"> <c:out value="恭喜,成績優秀"></c:out> </c:if> <c:if test="${param.score >= 80 && param.score < 90}"> <c:out value="恭喜,成績良好"></c:out> </c:if> <c:out value="${sessionScope.grade}"></c:out>

輸出



6.choose,when,otherwise標簽的用法

這三個合在一起講,有點類似switch case default。

choose:本身只當做<c:when>和<c:otherwise>的父標簽

when:<c:choose>的子標簽,用來判斷條件是否成立

otherwise:<c:choose>的子標簽,接在<c:when>標簽后,當<c:when>標簽判斷為false時被執行

接上面的form表單

<!-- choose,when,otherwise標簽的用法 --> <c:choose> <c:when test="${param.score >= 90 && param.score <= 100}"> <c:out value="優秀"></c:out> </c:when> <c:when test="${param.score >= 80 && param.score < 90}"> <c:out value="良好"></c:out> </c:when> <c:when test="${param.score >= 70 && param.score < 80}"> <c:out value="中等"></c:out> </c:when> <c:when test="${param.score >= 60 && param.score < 70}"> <c:out value="及格"></c:out> </c:when> <c:when test="${param.score >= 0 && param.score < 60}"> <c:out value="不及格"></c:out> </c:when> <c:otherwise> <c:out value="輸入的分數不合法"></c:out> </c:otherwise> </c:choose> <c:choose> <c:when test="${param.score == 100}"> <c:out value="您是第一名"></c:out> </c:when> </c:choose><br>

輸出



7.forEach標簽的用法

基礎迭代標簽,接受多種集合類型

<!-- forEach標簽的用法 --> <% List<String> names = new ArrayList<String>(); names.add("liu"); names.add("xu"); names.add("Code"); names.add("Tiger"); request.setAttribute("names", names); %> <!-- 獲取全部值 --> <c:forEach var="name" items = "${requestScope.names}"> <c:out value="${name}"></c:out><br> </c:forEach> <c:out value="========================"></c:out><br> <!-- 獲取部分值 --> <c:forEach var="name" items = "${requestScope.names}" begin="1" end="3"> <c:out value="${name}"></c:out><br> </c:forEach> <c:out value="========================"></c:out><br> <!-- 獲取部分值 并指定步長--> <c:forEach var="name" items = "${requestScope.names}" begin="1" end="3" step = "2"> <c:out value="${name}"></c:out><br> </c:forEach> <c:out value="========================"></c:out><br> <!-- 獲取部分值 并指定varStatus--> <c:forEach var="name" items = "${requestScope.names}" begin="0" end="3" varStatus="n"> <c:out value="${name}"></c:out><br> <c:out value="index:${n.index}"></c:out><br> <c:out value="count:${n.count}"></c:out><br> <c:out value="first:${n.first}"></c:out><br> <c:out value="last:${n.last}"></c:out><br> <c:out value="-----------------"></c:out><br> </c:forEach> <c:out value="========================"></c:out><br>

輸出

liu xu Code Tiger ======================== xu Code Tiger ======================== xu Tiger ======================== liu index:0 count:1 first:true last:false ----------------- xu index:1 count:2 first:false last:false ----------------- Code index:2 count:3 first:false last:false ----------------- Tiger index:3 count:4 first:false last:true ----------------- ========================

上面的varStatus屬性,有index、count、first、last這幾個狀態。



8.forTokens標簽的用法

根據指定的分隔符來分隔內容并迭代輸出

<!-- forTokens標簽的使用 --> <c:forTokens items="010-12345-678" delims="-" var="num"> <c:out value="${num}"></c:out><br> </c:forTokens>

輸出

010 12345 678

9.import標簽的用法

檢索一個絕對或相對 URL,然后將其內容暴露給頁面

該標簽和<jsp:include>的區別:<jsp:include>只能包含同一個web應用中的文件,而<c:import>可以包含其他web應用中的文件,甚至是網絡上的資源。

該標簽只是把URL屬性中的資源加載到頁面中,URL地址欄的地址不會改變。

<!-- import標簽的用法 絕對路徑--> <c:catch var="error1"> <c:import url="http://www.codeliu.com"></c:import> </c:catch> <c:out value="${error1}"></c:out><br> <!-- 相對路徑 --> <c:catch var="error2"> <c:import url="test.txt" charEncoding="gbk" scope="session" var="test"></c:import> </c:catch> <c:out value="${error2}"></c:out> <c:out value="${sessionScope.test}"></c:out><br> <!-- 使用context屬性 ,前面要加/,導入MyFirstJSP項目中的index.jsp頁面--> <c:catch var="error3"> <c:import url="/index.jsp" context="/MyFirstJSP"></c:import> </c:catch> <c:out value="${error3}"></c:out><br>



10.redirect,param標簽的用法

redirect:重定向至一個新的URL.同時可以在url中加入指定的參數

param:用來給包含或重定向的頁面傳遞參數

<!-- redirect標簽的用法 --> <c:redirect url="rec.jsp"> <c:param name="username" value="liu"></c:param> <c:param name="password" value="123456"></c:param> </c:redirect>

該標簽會使URL地址欄的地址發生改變。可通過EL表達式的param對象來獲取傳遞的參數值。

<c:out value="${param.username}"></c:out><br> <c:out value="${param.password}"></c:out><br>

輸出

liu 123456



11.url標簽的用法

使用可選的查詢參數來創造一個URL

<c:url>標簽將URL格式化為一個字符串,然后存儲在一個變量中。

這個標簽在需要的時候會自動重寫URL。

var屬性用于存儲格式化后的URL。

<c:url>標簽只是用于調用response.encodeURL()方法的一種可選的方法。它真正的優勢在于提供了合適的URL編碼,包括<c:param>中指定的參數。

<!-- url標簽的用法 --> <a href = "<c:url value = "http://www.codeliu.com"/>">這個鏈接通過&lt;c:url&gt;生成</a>

輸出

這個鏈接通過<c:url>生成

我們看看網頁源代碼


5.JSTL函數的使用

函數在上面已經列出來了,我就選了幾個寫了一下,其實和String的都差不多。不過要記得先在前面引入

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

測試以下幾個函數

<c:out value="${fn:contains('Hello world', 'Hello')}"></c:out><br> <c:out value="${fn:contains('Hello world', 'aaaa')}"></c:out><br> <c:out value="${fn:containsIgnoreCase('Hello world', 'hello')}"></c:out><br>

輸出

true false true



好了,大概也就說這么多了。

個人博客http://www.codeliu.com,歡迎各位志同道合的小伙伴!

總結

以上是生活随笔為你收集整理的JSTL核心标签超详细的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。