JSP总结-EL and JSTL

EL表达式

为了尽量避免在前端HTML页面中增加Java代码,而提供的一种简单的数据访问语言。

  • 基础语法 ${ 表达式 }

  • 内置对象
    这里写图片描述

    插入Java代码
    <%=pageContext.getAttribute(“foo”, PageContext.SESSION_SCOPE)%>
    EL表达式
    ${pageContext.request.contextPath}
    注意: 在调用内置对象的某些特殊属性时,书写方法有两种。

    • ${header.accept-Encoding} 错误
    • ${header[‘accept-Encoding’]} 正确
  • EL表达式获取数据

    • 获取自定义数据(自定义的数据必须放入域中,否则无法访问到)

          <%
              String str = "Jack";
              pageContext.setAttribute("name", str);
          %>
          ${pageScope.name}
    • 获取数组

          <%
              String[] arr = {"Java", "PHP", "Python", "JavaScript"};
              // 将数组放入指定域中
              pageContext.setAttribute("arr", arr, PageContext.REQUEST_SCOPE);
          %>
          ${requestScope.arr[0]}
          ${requestScope.arr[1]}
          ${requestScope.arr[2]}
          ${requestScope.arr[3]}
    • 获取List

          <%
              List<String> list = new ArrayList<>();
              list.add("One");
              list.add("Two");
              list.add("Three");
              pageContext.setAttribute("list", list, PageContext.PAGE_SCOPE);
          %>
          ${list}
    • 获取Map

          <%
              Map<String, String> map = new HashMap<>();
              map.put("name", "Tom");
              map.put("age", "20");
              pageContext.setAttribute("map", map);
          %>
          ${map.name}
  • EL运算符

    • 算数运算符

          ${1+1}
          ${2-3}
          ${5 div 2}
          ${5 mod 2}
          ${'10' + 2}
          <%--不能作为字符串拼接--%>
          <%--${"I" + "Love" + "You"}--%>
    • 逻辑运算符

          <%--等于,也可使用 == --%>
          ${1 eq 1}
          <%--不等于,!= --%>
          ${1 ne 1}
          <%--小于, < --%>
          ${2 lt 1}
          <%--大于, > --%>
          ${2 gt 3}
          <%--小于等于, <= --%>
          ${2 le 3}
          <%--大于等于, >= --%>
          ${2 ge 1}
    • 关系运算符

          <%--与, 也可以用 and--%>
          ${true && false}
          <%--或, or--%>
          ${true || false}
          <%--非, not--%>
          ${!false}
    • 三元运算符 和 empty 运算符

          ${ 1 == 1 ? true : false}
          ${empty user}
          ${!empty user}

JSTL

Java standard tag library Java标准标签库

  • 使用JSTL

    1. 引入两个所需要的包
      这里写图片描述
    2. 在JSP页面中应用

      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    3. 测试 (页面输出 This is a test)

      <c:out value="This is a test"></c:out>
  • Core 标签库

    • if 标签

      <%--设置visitCount 变量的值为 1--%>
          <c:set value="1" var="visitCount" property="visitCount"></c:set>
          <%--
              test: 设置判断条件
              var: 指定逻辑表达式中变量的名字
              scope: 指定var变量的作用域,默认为page
              如果test中结果为true,则会输出标签中的内容
          --%>
          <c:if test="${visitCount == 1}" var="visitCount" scope="request">
              visit ${visitCount}
          </c:if>
    • forEach 标签

           <%--
              var: 当前集合中的元素
              items: 被遍历的对象
              begin: 起点
              end: 结束
              step: 步长
              status: 元素的状态信息
          --%>
          <c:forEach var="item" items="${arr}" begin="1" step="1" end="3" varStatus="status">
              <tr>
                  <td>${status.count}</td>
                  <td>${status.index}</td>
              </tr>
              ${item}<br>
          </c:forEach>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值