EL&&JSTL学习笔记

1、El表达式
  简化我们的开发

  1)、在页面显示域中的属性值
    ${输入属性名}
  2)、要获取对象中的某个属性直接使用.属性名的方式

  3)、el表达式如果获取域中的属性,直接写属性名,他会从四个域小到大找。找到即停止
    el表达式可以连点操作
  4)、el 11个隐含对象 el可以取出自己指定的这11个对象中的数据
    ${pageScope.attr} ${attr}
    四个域对象。是从这四个域对象中取值。map
    page域中的数据 pageScope(封装了pageContext域中所有的共享数据(setAttr,getAttr)),他是一个Map
    request域中的数据 requetScope(封装了request域中所有的数据(setAttr,getAttr)), 他是一个Map
    session域中的数据 sessionScope(封装了session域中所有的数据(setAttr,getAttr)),他是一个Map
    application域中的数据 applicationScope(封装了application域中所有的数据(setAttr,getAttr)),他是一个Map
    el取出域中属性获取map中的key值,如果没有,"" 如果有 显示相应内容

    一个非map对象
      pageContext就代表的是jsp隐含对象中的pageContext,取出其他隐含对象

  5)、el表达式如何获取stu-x 这些特殊命名的属性(因为会产生歧义)
    使用['属性名'] 取map中的数据可以使用. 也可以使用['key']

  1、JSTL JSP的标准标签库(里面有 很多的标签可以使用),极大的简化我们的开发
  2、使用
    1)、导包
      taglibs-standard-impl-1.2.1.jar
      taglibs-standard-spec-1.2.1.jar
    2)、在页面导入标签库
      page include taglib(导入标签库的指令)

      1)、核心标签库 c标签库
        <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
        用来导入标签库 prefix定义标签的前缀<jsp:forward> uri:标签库的唯一识别符

      2)、使用核心标签库
        1)、<c:out>用于计算一个表达式并将结果输出到当前页面。

          value:代表要输出的内容 可以是el表达式
          default:表示默认值
          escapeXml:表示是否转义特殊字符,默认转义
            例:
              <c:out value="${user.name}" default="" escapeXml="true"></c:out>

        2)、<c:set>用于添加或修改域中的属性
          <c:set var="" property="" scope="" target="" value=""></c:set>
          1、给域中设置一个属性
            var:表示要设置的属性的key
            value:表示要设置的属性的value
            scope:表示要设置在哪个域中 pageScope
            scope="page"
            scope="request"
            scope="session"
            scope="application"
            <c:set var="key" value="value" scope="request"></c:set>
          2、修改对象的某个属性值
            <c:set property="name" target="${user}" value="孙悟空"></c:set>
            property:代表要修改的属性名
            value:修改后的值
            target:代表修改哪个对象

        3)、<c:remove>用来域中的属性
          <c:remove var="" scope=""/>
          var:要移除的属性的key
            scope:要移除哪个域中的属性,如果不指定移除哪个域中的属性,那么就全部移除
        4)、<c:if>用于实现if语句的判断功能
          test:就是判断条件 如果是true执行标签体里面的内容,否则不执行
          scope:指定,就是将判断结果保存到指定的域中,方便以后使用
          var:指定key值
        5)、<c:choose>、<c:when>、<c:otherwise>这是一套组合

          <c:otherwise>
            <c:choose>:选择,从这里开始进入分支判断。。 swich case
              <c:when test="${stu.age >18 }">
                当when中的条件满足,执行标签体
              </c:when>
            <c:otherwise>
              否则执行我们这里的标签体
          </c:otherwise>

        6)、<c:forEach>用来做循环遍历
          for(Student stu:stus){

          }
          begin="" end="" items="" step="" var="" varStatus=""
          begin:指定遍历的开始位置
          end:指定遍历的结束位置
          items:要遍历的东西 list array...
          step:步长 ,一次跳过多少
          var:指定遍历的当前条目 的变量名

          varStatus:遍历状态,里面封装了当前遍历的所有状态信息


          varStatus="status",

          <th>status.begin</th>开始的索引
          <th>status.end</th> 结束的索引
          <th>status.step</th>遍历的步长
          <th>status.count</th>当前遍历的个数
          <th>status.index</th>当前遍历到的索引
          <th>status.last</th>是否最后一个

        7)、<c:url>

      3、JSTL函数库
        fn:contains和fn:containsIgnoreCase
        eg: fn:contains(string,subString)  boolean

posted @ 2020-03-27 16:05  orzxxll  阅读(138)  评论(0)    收藏  举报