A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 哥.兜裡有煙 中级黑马   /  2018-1-26 11:42  /  1366 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 哥.兜裡有煙 于 2018-1-26 11:57 编辑

EL的概述
1.什么是EL?
    EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让 Jsp的代码更加简化。
2.为什么学习EL?
    简化JSP的代码,而且减少<% %>

3.使用EL表达式
    语法:${ EL表达式 }

4.EL的功能:
4.1  获取数据:(JSP的四个域)
4.2  执行运算:
4.3  操作WEB开发的常用的对象:
4.4  调用Java中方法:--很少用.

EL获取数据:
1.前提:
  数据必须存储在域对象中
2.格式:
2.1  普通数据      :    ${   名字  }
2.2  有索引数据     :   ${   名字[索引]   }
2.3  有属性数据     :   ${  名字.属性  }        
2.4  属性特殊      :   ${  名字["属性"]  }

EL执行运算:
1.EL执行算数运算
     ${ n1 + n2 + n3 }

2.EL执行逻辑运算
      ${ n1<n2 && n3 < n4 }  --   ${ n1<n2 and n3 < n4 }
      ${ n1<n2 || n3 < n4 } -- ${ n1<n2 or n3 < n4 }
      ${ !(n1 < n2) } --  ${ not(n1<n2) }

3.EL执行关系运算
     ${ n1 < n2 } -- ${ n1 lt n2 } <!-- less than -->
     ${ n1 > n2 } -- ${ n1 gt n2 } <!-- great than -->
     ${ n1 <= n2 } -- ${ n1 le n2 } <!-- less equal -->
     ${ n1 >= n2 } -- ${ n1 ge n2 } <!-- great equal -->
     ${ n1 == n2 } -- ${ n1 eq n2 } <!-- equal -->

4.EL执行三元运算
     ${ n1 < n2 ? "正确":"错误" }

5.empty运算(判断为不为空)
    ${ user == null } -- ${ empty user }
    ${ user != null } -- ${ not empty user }

EL操作WEB开发的常用对象11
1. pageScope, requestScope, sessionScope, applicationScope - 获取JSP中域中的数据

2. param, paramValues - 接收参数.
     ${ param.id }
     ${ param.name }
     ${ paramValues.hobby[0] }
     ${ paramValues.hobby[1] }

3. header, headerValues - 获取请求头信息
      ${ header["User-Agent"] }

4. initParam - 获取全局初始化参数
     ${ initParam.username }

5. cookie - WEB开发中cookie  //获取cookie对象
       ${ cookie.名字.value }

6. pageContext - WEB开发中的pageContext.//获取其他的对象
       IP地址:${ pageContext.request.remoteAddr }
      工程路径:${ pageContext.request.contextPath }

JSTL

JSTL的概述:
1.什么是JSTL:
    JSP的标准标签库

2.为什么学习JSTL:
    JSTL和EL结合 替换页面中<%%>

3.JSTL版本:
     3.1  JSTL1.0             :不支持EL表达式.
     3.2  JSTL1.1 和 1.2   :支持EL表达式.

4.JSTL的标签库:包含了五类标签.
      core(核心标签),
      fmt(国际化标签),
      xml(XML标签),
      sql(SQL标签),
      fn(JSTL提供EL函数库5.使用JSTL:
5.1  引入JSTL的相关的jar包.
        5.1.1  jstl.jar
        5.1.2  standard.jar
     5.2  在页面中引入标签库.<%@ taglib uri=””     prefix=””    %>
JSTL的核心标签的用法
1. <c:if>标签
   < c : if  test = "n1 > n2 ">
        这是您第一次访问本网站,欢迎您!
   </c:if>
   test: 表达式 (判断条件)   
   中间为: 要输出的内容
   判断条件成立:中间要输出的内容会输出,显示内容
   判断条件不成立:中间的输入内容不会输出,不显示

2.<c:forEach>标签
   2.1 遍历数组
     <%
          String[] arrs = {"李旭华","李冠希","董阳阳"};
          pageContext.setAttribute("arrs", arrs)        
     %>
<c:forEach var="i" items="${ arrs }">
        ${ i }
</c:forEach>

2.2 遍历List集合
<%
        List list = new ArrayList();
        list.add("李旭华");
        list.add("李冠希");
        list.add("董阳阳");
        pageContext.setAttribute("list", list);
%>
<c:forEach var="i" items="${ list }">
        ${ i }
</c:forEach>

     2.3 遍历Map集合
<%
        Map<String,String> map = new HashMap<String,String>();
        map.put("aaa","李旭华");
        map.put("bbb","李冠希");
        map.put("ccc","董阳阳");
        pageContext.setAttribute("map", map);
%>
<c:forEach var="entry" items="${ map }">
        ${ entry.key }-${ entry.value }
</c:forEach>

2.4 遍历从1到10
<c:forEach var="i" begin="1" end="10" step="2">
        ${ i }
</c:forEach>
2.5 遍历从100到300
<c:forEach var="i" begin="100" end="300" step="5" varStatus="status">
       <c:if test="${ status.count % 3 == 0 }">
           <font color="red">${ i }</font>
       </c:if>
       <c:if test="${ status.count % 3 != 0 }">
          ${ i }
       </c:if>
</c:forEach>


JSTL的提供EL的函数库

    ${ fn:contains("Hello World","Hello") }
    ${ fn:length("HelloWorld") }
    ${ fn:toLowerCase("ABCDE") }
      <c:forEach var="i" items='${ fn:split("a-b-c-d","-") }'>
          ${ i }
      </c:forEach>


在使用<c:forEach>标签时,需要注意如下几点说明:
如果指定 begin 属性,其值必须大于或等于零;
如果指定步长(step 属性),其值必须大于或等于 1;

1 个回复

倒序浏览
我来占层楼啊   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马