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="##,###.##">    //##,###.##数字格式化的格式,每个系统的要求不一样,一般公司会有统一的格式
posted on 2020-07-08 01:38  文种玉  阅读(825)  评论(0编辑  收藏  举报