Java標準庫學習小結

Java標準設計規範:jsp頁面只展示數據界面,不做數據處理;Servlet只做業務邏輯處理,不做界面展示
 EL表達式的出現,是希望jsp頁面中不在出現Java代碼,便於維護和閱讀
 但是EL表達式有侷限性:1.不能賦值,只能獲取數據;
      2.沒有條件判斷、循環遍歷的功能
 爲了彌補El表達式的不足,推出了JSTL標籤庫。
 
 JSTL:Java standard tag library:Java標準標籤庫
 使用JSTL需要導入兩個jar包  jstl-1.2.jar和standard-1.1.2.jar
 放在WebContent\WEB-INF\lib文件夾下面,通過Build path導入到項目中
 使用JSTL標籤時,需要在jsp頁面中通過taglib指令來導入 ,需要配置如下兩個參數
 uri="",標籤所在路徑 uri在導入的JSTL標籤庫的META-INF文件夾c.tld(核心標籤庫)文件中的
 <uri>http://java.sun.com/jsp/jstl/core</uri>;標籤中。
 高版本的eclipse或者Javaee5.0以上的工程會自動提示以供選擇    使用什麼標籤,都要設定對應的uri
 prefix=""標籤的前綴,在對應標籤的<short-name>c</short-name>中可以找到
 JSTL標籤庫中的標籤,在導入以後,都是以前綴名作爲標誌的
 
 JSTL標籤中的c標籤,被稱爲核心標籤
 
 JSTL標籤庫包含有:核心標籤庫(c標籤):主要封裝的是一些基本的核心業務邏輯
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
     格式化和國際化標籤庫(fmt標籤):主要封裝的是一些進行數據格式化和國際化的業務。比如如期格式化等。
     <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
      數據庫標籤庫(aql標籤):主要封裝的是操作數據庫的業務邏輯
      <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
    xml標籤庫(x標籤) :主要封裝的是一些解析xml數據的業務邏輯
    <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="xml"%>
    JSTL函數標籤庫(fn函數):主要封裝的是常見函數。如string。
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
 重點掌握:核心標籤庫(c標籤)  函數標籤庫(fn標籤)格式化和 國際化標籤庫(fmt標籤)
 
 核心標籤庫包括:
  1.c:out標籤:<c:out escapeXml="" default="" value="">
   標籤作用:向頁面輸出指定內容
   escapeXml:指定是否輸出爲xml格式輸出  ,只能接受參數true/false
     true:會對輸出的數據進行轉義(轉義只針對特殊字符)
     false:不會對輸出內容進行轉義
   default:指定默認的輸出值
   value:輸出的內容。可以是<%= %>表達式和EL表達式
   <c:out value="${hehe1}"></c:out>
   等價於pageContext.getAttribute("hehe1");
   
  2.c:set標籤:<c:set scope="" value="" property="" var="" target=""></c:set>
   標籤的作用:設置一個域或者集合中的屬性
   var:指定域中的屬性名
   value:指定域中的屬性值
   scope:指定域對象
   target:指定集合名或者對象名 ,即賦值的目標。可以是EL表達式
   property:指定集合的屬性名或者對象的屬性名,即需要賦值的對象屬性
   
   2.1保存數據:在設置值的時候可以通過scope:指定數據存放的域對象
    <c:set var="hehe1" value="hehe"></c:set>
    默認情況下數據放在pageContext域中
    保存的值可以通過EL表達式取出 ,不能直接用<%= %>表達式取出
    ${hehe }或者<c:out value="${hehe1}"></c:out>
   2.2可以給域中的對象賦值
    <%
     //創建對象
     User user = new User();
     //把對象放到域中
     pageContext.setAttribute("user", user);
     //給對象賦值
    %>
   <c:set target="${user}" property="name" value="dslfkl"> </c:set>
   <c:set target="${user}" property="name" value="password"> </c:set>
   獲取設置的值
   ${user.name }  ${user.password}
   
   
  3.c:remove標籤 <c:remove var="" scope=""/>
   標籤作用:刪除域中的屬性
   var:指定要刪除的屬性的名稱
   scope:指定域名
   
   <c:set var="salary" scope="session" value="${2000*2}"/>
    <p>Before Remove Value: <c:out value="${salary}"/></p>
    <c:remove var="salary"/>
   <p>After Remove Value: <c:out value="${salary}"/></p>
   
   
  4.c:catch標籤  <c:catch var=""></c:catch>
   標籤作用:捕獲異常
   var:指定異常對象以什麼屬性存儲在page域中
   <c:catch var ="catchException">
       <% int x = 5/0;%>
   </c:catch>
   <c:if test = "${catchException != null}">
       <p>The exception is : ${catchException} <br />
       There is an exception: ${catchException.message}</p>
   </c:if>
   
   
   
   
  5.c:if標籤<c:if test=""></c:if>相當於if語句
   標籤作用:對於指定的條件語句,如果成立,則執行標籤體內容
   test:指定判斷條件 
   
  6.c:choose標籤  <c:choose>
      <c:when test=""></c:when>
      <c:otherwise></c:otherwise>
     </c:choose>
   標籤作用:實現if else的功能
   <c:choose>:外部選擇
   <c:when test="">指定條件語句成立時執行的標籤內容
     test:指定判斷的條件語句
   <c:otherwise>指定的條件不成立時執行的標籤內容
   
   
  7.c:forEach標籤<c:forEach items="" var=""</c:forEach>
   標籤作用:該標籤實現的功能是Java中forEach的功能
        屬性              屬性描述                                                                是否必要         默認值
       items              要被循環的信息                                                           否                    無
       begin              開始的元素(0=第一個元素,1=第二個元素)            否                   0
       end                  最後一個元素(0=第一個元素,1=第二個元素)        否                    Last element
       step                 每一次迭代的步長                                                         否                   1
       var                  代表當前條目的變量名稱                                                否                   無
       varStatus         代表循環狀態的變量名稱                                                否                   無
       items:             要迭代的對象或變量名
       var:              迭代變量名
   //準備數據
   List<User> userList = new ArrayList<User>();
   userList.add(new User("aa","aa"));
   userList.add(new User("bb","bb"));
   userList.add(new User("cc","cc"));
   userList.add(new User("dd","dd"));
   //把數據放進域中
   pageContext.setAttribute("userList", userList);
   <c:forEach items="userList" var="user">
   姓名:${user.username}  密碼:${user.password}
   </c:forEach>
   
   <c:forEach var="i" begin="1" end="5">
       Item <c:out value="${i}"/><p>
   </c:forEach>
   
  8.c:url標籤 <c:url context="" scope="" value="" var="">
     <c:param name="" value="">
      標籤作用:指定鏈接跳轉時的參數
      name:指定參數的屬性名稱
      value:指定參數的值
     </c:param>
     </c:url>
    標籤作用:指定跳轉鏈接
    context:指定網站/網址
    scope:指定域
    value:指定屬性的值
    var:指定屬性的名稱
     <c:url context="aa" scope="page" value="http://www.baidu.com" var="index">
    <c:param name="name" value="hehe">
    </c:param>
    </c:url>
 
  9.c:redirect標籤(實現重定向功能)<c:redirect context="" url=""></c:redirect>
   標籤作用:重定向到指定頁面
   url:目標URL 無默認值
   context:一個本地網絡應用程序的名稱,默認爲當前應用
   <c:redirect url="http://www.w3cschool.cc"/>
   
   
  10.c:forTokens標籤
   標籤作用:該標籤實現的功能是Java中forEach的功能
        屬性              屬性描述                                                                    是否必要                 默認值
       items              要被循環的信息                                                            否                           無
       begin              開始的元素(0=第一個元素,1=第二個元素)             否                          0
       end                 最後一個元素(0=第一個元素,1=第二個元素)          否                      Last element
       step                每一次迭代的步長                                                          否                           1
       var                  代表當前條目的變量名稱                                               否                           無
       varStatus        代表循環狀態的變量名稱                                               否                           無
       delims             分隔符                                                                            是                            無
       items:           要迭代的對象或變量名
       var:               迭代變量名
   
   <c:forTokens items="Zara,nuha,roshy" delims="," var="name">
      <c:out value="${name}"/><p>
   </c:forTokens>
   
  11.c:import標籤
  標籤作用<c:import>標籤提供了所有<jsp:include>行爲標籤所具有的功能,同時也允許包含絕對URL
  屬性                    屬性描述                                                   是否必要             默認值
  url                        需要檢索和引入的頁面的URL                     是                           無
  context                 /緊接着一個本地網絡應用程序的名稱         否                   當前應用程序
  charEncoding      所引入的數據的字符編碼集                          否                  ISO-8859-1
  var                        用於存儲所引入的文本的變量                     否                   Print to page
  scope                    var屬性的作用域                                        否                      Page
  varReader           可選的用於提供java.io.Reader對象的變量  否                       無
  <c:import var="data" url="http://www.w3cschool.cc"/>
  <c:out value="${data}"/>
 
 格式化標籤
 JSTL格式化標籤用來格式化並輸出文本、日期、時間、數字。引用格式化標籤庫的語法如下:
 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
 標籤      描述
 <fmt:formatNumber>   使用指定的格式或精度格式化數字
 <fmt:parseNumber>   解析一個代表着數字,貨幣或百分比的字符串
 <fmt:formatDate>   使用指定的風格或模式格式化日期和時間
 <fmt:parseDate>   解析一個代表着日期或時間的字符串
 <fmt:bundle>    綁定資源
 <fmt:setLocale>   指定地區
 <fmt:setBundle>    綁定資源
 <fmt:timeZone>    指定時區
 <fmt:setTimeZone>   指定時區
 <fmt:message>    顯示資源配置文件信息
 <fmt:requestEncoding>  設置request的字符編碼

文章引用來自:http://blog.csdn.net/ning_xian_hong/article/details/45267875?ref=myread
發佈了25 篇原創文章 · 獲贊 4 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章