<code id="qf3hh"></code>
  • <menuitem id="qf3hh"></menuitem>
  • <strike id="qf3hh"><label id="qf3hh"></label></strike>

  • ?
      開發(fā)技術(shù) / Technology

      JSTL 核心標簽庫 使用

      日期:2015年2月3日  作者:zhjw  來源:互聯(lián)網(wǎng)    點擊:910

      JSTL 核心標簽庫 使用

       

      JSTL 核心標簽庫標簽共有13個,功能上分為4類:

      1.表達式控制標簽:out、set、removecatch

      2.流程控制標簽:if、choose、whenotherwise

      3.循環(huán)標簽:forEach、forTokens

      4.URL操作標簽:import、urlredirect

      使用標簽時,一定要在jsp文件頭加入以下代碼:

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

       

      下面分別對這些標簽進行說明:

      1. <c:out> 用來顯示數(shù)據(jù)對象(字符串、表達式)的內(nèi)容或結(jié)果

      使用Java腳本的方式為:<% out.println("hello") %>  <% =表達式 %>

      使用JSTL標簽:<c:out value="字符串">,例如:

      <body>
        <c:out value="&lt要顯示的數(shù)據(jù)對象(未使用轉(zhuǎn)義字符)&gt" escapeXml="true" default="默認值"></c:out><br/>
        <c:out value="&lt要顯示的數(shù)據(jù)對象(使用轉(zhuǎn)義字符)&gt" escapeXml="false" default="默認值"></c:out><br/>
        <c:out value="${null}" escapeXml="false">使用的表達式結(jié)果為null,則輸出該默認值</c:out><br/>
      </body>

      那么網(wǎng)頁顯示效果為:

      2. <c:set> 用于將變量存取于 JSP 范圍中或 JavaBean 屬性中。下面的例子中假設已經(jīng)有 Person.java 這個類文件。

       

      復制代碼
      <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
      <%@page contentType="text/html; charset=utf-8" %>
      
      <jsp:useBean id="person" class="lihui.Person"></jsp:useBean>
      
      <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
      
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
        <head>
          <title>JSTL測試</title>
        </head>
        
        <body>
        <c:set value="張三" var="name1" scope="session"></c:set>
        <c:set var="name2" scope="session">李四</c:set>
        <c:set value="趙五" target="${person}" property="name"></c:set>
        <c:set target="${person}" property="age">19</c:set>
        <li>從session中得到的值:${sessionScope.name1}</li>
        <li>從session中得到的值:${sessionScope.name2}</li>
        <li>從Bean中獲取對象person的name值:<c:out value="${person.name}"></c:out></li>
        <li>從Bean中獲取對象person的age值:<c:out value="${person.age}"></c:out></li>
        </body>
      </html>
      復制代碼

      一共有四種語法格式,前兩種是給jsp的范圍變量賦值,后兩個是給 javabean 變量賦值

      效果如下:

       

      3.<c:remove> 主要用來從指定的 jsp 范圍內(nèi)移除指定的變量。使用類似,下面只給出語法:

      <c:remove var="變量名" [scope="page|request|session|application"]></c:remove>


      4.<c:catch> 用來處理 JSP 頁面中產(chǎn)生的異常,并存儲異常信息

      <c:catch var="name1">

            容易產(chǎn)生異常的代碼

      </c:catch>

      如果拋異常,則異常信息保存在變量 name1 中。

      5.<c:if>

      <c:if test="條件1" var="name" [scope="page|request|session|application"]></c:remove>

      例:

      復制代碼
        <body>
        <c:set value="趙五" target="${person}" property="name"></c:set>
        <c:set target="${person}" property="age">19</c:set>
        <c:if test="${person.name == '趙武'}" var="name1"></c:if>
        <c:out value="name1的值:${name1}"></c:out><br/>
        <c:if test="${person.name == '趙五'}" var="name2"></c:if>
        <c:out value="name2的值:${name2}"></c:out>
        </body>
      復制代碼

      效果:

      6. <c:choose> <c:when> <c:otherwise> 三個標簽通常嵌套使用,第一個標簽在最外層,最后一個標簽在嵌套中只能使用一次

      例:

      復制代碼
          <c:set var="score">85</c:set>
          <c:choose>
          <c:when test="${score>=90}">
          你的成績?yōu)閮?yōu)秀!
          </c:when>
          <c:when test="${score>=70&&score<90}">
          您的成績?yōu)榱己?
          </c:when>
          <c:when test="${score>60&&score<70}">
          您的成績?yōu)榧案?
          </c:when>
          <c:otherwise>
          對不起,您沒有通過考試!
          </c:otherwise>
          </c:choose>
      復制代碼

      7.<c:forEach>

      語法:<c:forEach var="name" items="Collection" varStatus="statusName" begin="begin" end="end" step="step"></c:forEach>

      該標簽根據(jù)循環(huán)條件遍歷集合 Collection 中的元素。 var 用于存儲從集合中取出的元素;items 指定要遍歷的集合;varStatus 用于存放集合中元素的信息。varStatus 一共有4種狀態(tài)屬性,下面例子中說明:

      復制代碼
       1 <%@ page contentType="text/html;charset=GBK" %>
       2 <%@page import="java.util.List"%>
       3 <%@page import="java.util.ArrayList"%>
       4 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
       5 <html>
       6 <head>
       7     <title>JSTL: -- forEach標簽實例</title>
       8 </head>
       9 <body>
      10 <h4><c:out value="forEach實例"/></h4>
      11 <hr>
      12     <% 
      13         List a=new ArrayList();
      14         a.add("貝貝");
      15         a.add("晶晶");
      16         a.add("歡歡");
      17         a.add("瑩瑩");
      18         a.add("妮妮");
      19     request.setAttribute("a",a);
      20 %>
      21     <B><c:out value="不指定begin和end的迭代:" /></B><br>
      22     <c:forEach var="fuwa" items="${a}">
      23     &nbsp;<c:out value="${fuwa}"/><br>
      24     </c:forEach>
      25     <B><c:out value="指定begin和end的迭代:" /></B><br>
      26     <c:forEach var="fuwa" items="${a}" begin="1" end="3" step="2">
      27     &nbsp;<c:out value="${fuwa}" /><br>
      28     </c:forEach>
      29     <B><c:out value="輸出整個迭代的信息:" /></B><br>
      30     <c:forEach var="fuwa" items="${a}" begin="3" end="4" step="1" varStatus="s">
      31     &nbsp;<c:out value="${fuwa}" />的四種屬性:<br>
      32     &nbsp;&nbsp;所在位置,即索引:<c:out value="${s.index}" /><br>
      33     &nbsp;&nbsp;總共已迭代的次數(shù):<c:out value="${s.count}" /><br>
      34     &nbsp;&nbsp;是否為第一個位置:<c:out value="${s.first}" /><br>
      35     &nbsp;&nbsp;是否為最后一個位置:<c:out value="${s.last}" /><br>
      36     </c:forEach>
      37 </body>
      38 </html>
      復制代碼

      顯示效果:

      8.<c:forTokens> 用于瀏覽字符串,并根據(jù)指定的字符串截取字符串
      語法:<c:forTokens items="stringOfTokens" delims="delimiters" [var="name" begin="begin" end="end" step="len" varStatus="statusName"]></c:forTokens>

      還是看個例子吧:

      復制代碼
       1 <%@ page contentType="text/html;charset=GBK"%>
       2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
       3 <html>
       4     <head>
       5         <title>JSTL: -- forTokens標簽實例</title>
       6     </head>
       7     <body>
       8         <h4>
       9             <c:out value="forToken實例" />
      10         </h4>
      11         <hr>
      12         <c:forTokens items="北、京、歡、迎、您" delims="、" var="c1">
      13             <c:out value="${c1}"></c:out>
      14         </c:forTokens>
      15         <br>
      16         <c:forTokens items="123-4567-8854" delims="-" var="t">
      17             <c:out value="${t}"></c:out>
      18         </c:forTokens>
      19         <br>
      20         <c:forTokens items="1*2*3*4*5*6*7" delims="*" begin="1" end="3"
      21             var="n" varStatus="s">
      22     &nbsp;<c:out value="${n}" />的四種屬性:<br>
      23         &nbsp;&nbsp;所在位置,即索引:<c:out value="${s.index}" />
      24             <br>
      25         &nbsp;&nbsp;總共已迭代的次數(shù):<c:out value="${s.count}" />
      26             <br>
      27         &nbsp;&nbsp;是否為第一個位置:<c:out value="${s.first}" />
      28             <br>
      29         &nbsp;&nbsp;是否為最后一個位置:<c:out value="${s.last}" />
      30             <br>
      31         </c:forTokens>
      32     </body>
      33 </html>
      復制代碼

      顯示結(jié)果:

       9.URL 操作標簽

      (1)<c:import> 把其他靜態(tài)或動態(tài)文件包含到 JSP 頁面。與<jsp:include>的區(qū)別是后者只能包含同一個web應用中的文件,前者可以包含其他web應用中的文件,甚至是網(wǎng)絡上的資源。

      語法:<c:import url="url" [context="context"] [value="value"] [scope="..."] [charEncoding="encoding"]></c:import>

              <c:import url="url"  varReader="name" [context="context"][charEncoding="encoding"]></c:import>

       看個例子:

      復制代碼
       1 <%@ page contentType="text/html;charset=GBK"%>
       2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
       3 <html>
       4     <head>
       5         <title>JSTL: -- import標簽實例</title>
       6     </head>
       7     <body>
       8         <h4>
       9             <c:out value="import實例" />
      10         </h4>
      11         <hr>
      12         <h4>
      13             <c:out value="絕對路徑引用的實例" />
      14         </h4>
      15         <c:catch var="error1">
      16             <c:import url="http://www.baidu.com" />
      17         </c:catch>
      18         <c:out value="${error1}"></c:out>
      19         <hr>
      20         <h4>
      21             <c:out value="相對路徑引用的實例,引用本應用中的文件" />
      22         </h4>
      23         <c:catch>
      24             <c:import url="a1.txt" charEncoding="gbk" />
      25         </c:catch>
      26         <hr>
      27         <h4>
      28             <c:out value="使用字符串輸出、相對路徑引用的實例,并保存在session范圍內(nèi)" />
      29         </h4>
      30         <c:catch var="error3">
      31             <c:import var="myurl" url="a1.txt" scope="session" charEncoding="gbk"></c:import>
      32             <c:out value="${myurl}"></c:out>
      33             <c:out value="${myurl}" />
      34         </c:catch>
      35         <c:out value="${error3}"></c:out>
      36     </body>
      37 </html>
      復制代碼

      顯示結(jié)果:

       

      URL路徑有個絕對路徑和相對路徑。相對路徑:<c:import url="a.txt"/>那么,a.txt必須與當前文件放在同一個文件目錄下。如果以"/"開頭,表示存放在應用程序的根目錄下,如Tomcat應用程序的根目錄文件夾為 webapps。導入該文件夾下的 b.txt 的編寫方式: <c:import url="/b.txt">。如果要訪問webapps管理文件夾中的其他Web應用,就要用context屬性。例如訪問demoProj下的index.jsp,則:<c:import url="/index.jsp" context="/demoProj"/>.

      (2)<c:redirect> 該標簽用來實現(xiàn)請求的重定向。例如,對用戶輸入的用戶名和密碼進行驗證,不成功則重定向到登錄頁面?;蛘邔崿F(xiàn)Web應用不同模塊之間的銜接

      語法:<c:redirect url="url" [context="context"]/>

        或:<c:redirect url="url" [context="context"]>

                  <c:param name="name1" value="value1">

             </c:redirect>

      看個例子:

      1 <%@ page contentType="text/html;charset=GBK"%>
      2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
      3 <c:redirect
          
      国产一级婬片AAA毛,无码中文精品视视在线观看,欧美日韩a人成v在线动漫,五月丁香青草久久
      <code id="qf3hh"></code>
    • <menuitem id="qf3hh"></menuitem>
    • <strike id="qf3hh"><label id="qf3hh"></label></strike>