EL表達式的用法


EL表達式必須依賴於JSP才能生存下去
  作用:減少<%%>(java代碼)在頁面上的顯示,利於代碼的維護
  EL的基本語法:
    往瀏覽器中輸出內容
      ${1}
      ${“11”}
      ${'111’}
       算術運算符
    ${4+1}
    ${4-1}
    ${4*1}
    ${4/1}
      注意:EL表達式中的+號沒有拼接作用
      <%=1+2+”3”%>
      ${1+2+”3”}
      <%=1+2+”a”%>
      ${1+2+”a”}
       關系運算符
      ${1>8}
       邏輯運算符
      ${1==1 && 1<3}
      //邏輯運算符的特殊寫法
      ${true && false}  -- ${true and false}
      ${true || false}  -- ${true or false}
      ${!true} -- ${not true}
       empty關鍵字:判斷是否為null
      ${empty “”}<br>
      ${empty null}<br>
   eq關鍵字
      ${“aa” eq “aa”}
   EL表達式的取值問題
      EL表達式只能從四大作用域中取數據(pageContext,requset,session,application),目前只講requset
         <%
       int a = 100;
     %>
      ${a/2}
      取值不到,因為EL表達式只能從JSP的四大作用域當中獲取變量
      <%
        int a = 100;
        request.setAttribute(“wy”,a);
      %>
        ${wy/2}
    注意:
       1.EL表達式不能調用方法
       2.EL表達式不能在html中使用,JSP中的EL表達式有可能會出現失效的問題
        解決:在第一行加上一個屬性    isELIgnored="false" 即可
JSTL核心標簽庫
  使用步驟:
    1.在頁面的頂部導入標簽庫
      taglib::標簽庫
      uri:鏈接
        提示:URL與RUI的區別
          如:
          URL(完整路徑):  http://zhidao.baidu.com/question/68016373.html  --資源的真名
          URI(絕對路徑):     /question/68016373.html              --資源的名稱
          RUI包含URL
      prefix:前綴,一般使用c
    2.在頁面上使用c標簽
      <c:out value=””></c:out> //輸出,可以防止JS代碼執行
        等同於    ${“aaa”}
      例:
        <c:out value=”<script>alert(‘攻擊腳本’);</script>”></c:out>
        ${“<script>alert(‘攻擊腳本’);</script>”}
      <c:set var=”” value=”” scope=””><c:set> //在JSP頁面上定義變量
      例:
        <c:set var=”name” value=”李四” scope=”page”><c:set>
        等同於  pageContext.setAttribute(“name”,”李四”);
    <c:if test=””></c:if> //if邏輯判斷
      例:
        <c:set var=”sex” value=”男”></c:set>
        <c:if test=”${sex == ‘男’}”>
          男人
        </c:if>
        <c:if test=”${sex eq ‘女’}”>
          女人
        </c:if>
      注意: c:if 標簽沒有else標簽
    <c:choose></c:choose>         //switch
    <c:when test=””></c:when>      //case
    <c:otherwise></c:otherwise>      //default
     例:
      <c:set var=”sex” value=”男”></c:set>
      <c:when test=”${sex == ‘男’}”>
        男人
      </c:when>
      <c:when test=”${sex eq ‘女’}”>
        女人
      </c:when>
      <c:otherwise”>
        妖
      </c:otherwise>
    <c:forEach var=”” items=”” varStatus=””></c:forEach>
      var:數據組當中的每個元素
      items:數組的名稱(必須使用EL表達式)
      varStatus:數組的信息 如:varStatus = vs
      vs.index 循環的索引(從0開始)
      vs.count 循環的次數(從1開始)
      vs.first 是否是第一個
      vs.last 是否是最后一個
      例1:
      <%
        String [] arr = {“男人”,”女人”,”妖怪”};
        pageContext.setAttribute(“arr”,arr);
      %>
      <c:forEach var=”e” items=”${arr}” varStatus=”vs”>
        ${e}--${vs.index}--${vs.count}--${vs.first}--${vs.last}
      </c:forEach>
      例2:
      <c:forEach begin="1" end="10" var="i" step="3">
        ${i }
      <c:forEach>
      注意:JSP頁面中表單單行變色的問題
        <c:forEach items="${list}" var="u" varStatus="vs">
          <tr bgcolor="${vs.count%2 == 0 ? "red":"blue"}">
            <td>${u.id}</td>
            <td>${u.name}</td>
          </tr>
        </c:forEach>
格式化
  <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  例1:時間格式化:
  serlvet:
   req.setAttribute("date",new Date());
  JSP
     <fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss">
   例2:數字格式化(千分位)
  serlvet:
   req.setAttribute("number",111223444.56644);
  JSP
    <fmt:formatNumber value="${number}" pattern="##,###.##">    //##,###.##數字格式化的格式,每個系統的要求不一樣,一般公司會有統一的格式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM