JSTL和EL

EL表达式

什么是EL表达式

EL表达式是一种借鉴了JavaScript和XPath的表达式语言。EL表达式定义了一系列的隐含对象和操作符,无需在JSP页面嵌入Java代码,使JSP程序更容易编写。

EL表达式的特点和使用范围

特点

  1. 自动类型转换
  2. 使用简单

使用范围

  1. requestScope
  2. pageScope
  3. sessionScope
  4. applicationScope

EL表达式的语法

${EL 表达式 }

$ 和 {} ,缺一不可。

  1. 点操作符
    EL表达式通常由两部分组成:对象和属性。在EL表达式中也可以通过"."来访问对象的某个属性。
${student.studentName }
  1. [ ]操作符
    与点操作符类似,也可以访问对象的某个属性,但"[ ]“操作符还有更强大的功能。
    1.当属性名中包含特殊字符时,不能用点操作符,只能用”[ ]“操作符。
    2.访问数组时可以根据索引来访问其元素。
    3.”[ ]"操作符中可以使用变量实现动态访问。
1. ${student[student-Name] }
2. ${array[0] }
3. var stuName = "张三"
   ${student[stuName]}
  1. 关系操作符
操作符说明
== 或 eq等于
!= 或 ne不等于
< 或 lt小于
> 或 gt大于
<= 或 le小于等于
>= 或 ge大于等于
  1. 逻辑操作符
操作符说明
&& 或 and逻辑与
或 or逻辑或
! 或 not逻辑非
  1. Empty操作符
    用于检查一个变量值是否为null 或者 empty
${empty a }  或  ${!empty a }

EL表达式隐式对象
JSP提供了若干隐式对象,在EL表达式中也提供了一系列可以直接使用的隐式对象。

  1. 作用域访问对象
    当使用EL表达式访问某个变量时,应指定查找范围,如果没指定查找范围则会按照 page>request>session>application的顺序查找变量。
名称说明
pageScope与页面作用域(page)中的属性相关联的Map类
requestScope与页面作用域(request)中的属性相关联的Map类
sessionScope与页面作用域(session)中的属性相关联的Map类
applicationScope与页面作用域(application)中的属性相关联的Map类
  1. 参数访问对象
名称说明
param按照参数名称访问单一请求值的Map对象
paramValues按照参数名称访问数组请求的Map对象
  1. JSP隐式对象
名称说明
pageContext提供对页面信息和JSP内置对象的访问

JSTL标签

什么是JSTL

JSTL即JSP标准标签库。它包含了在开发JSP页面时常用的一组标准标签,这些标签提供了一种不用嵌入Java代码就可以开发复杂的JSP页面的途径。

如何使用JSTL

在JSP页面引入taglib指令

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

JSTL核心标签库

通用标签库

  1. <c:set>标签
    设置作用域变量的值或属性值。
  2. <c:out>标签
    将计算的表达式结果输出显示。
  3. <c:remove>标签
    移除指定作用域内的指定变量。
<c:set var="msg"/>  //var:设置的变量名
<c:out value="${msg }"/>  //value:要输出的结果
<c:remove var="msg" scope="page"/>  //scope:移除的变量所在的范围

条件标签库

  1. <c:if>
    用于实现Java语言中if语句的功能。
  2. <c:choose>
    <c:choose>、<c:when>、<c:otherwise>类似于Java中的if-else if-else语句。
//test属性是判断条件
<c:if test="${1==1}" var="flag" scope="page">
    <h1>正确</h1>
</c:if>

//没有满足条件的<c:when>标签,则会执行<c:otherwise>内的内容
<c:choose>
    <c:when test="${1==1 }">
        <h1>正确</h1>
    </c:when>
    <c:otherwise>
        <h1>错误</h1>
    </c:otherwise>
</c:choose>

迭代标签库

  1. 遍历集合对象的成员
//items指被迭代的集合对象,varStatus用于存放var引用的成员的相关信息
<c:forEach items="${stus}" var="stu" varStatus="status">
    <tr>
        <td>${stu.stuNo }</td>
        <td>${stu.stuName }</td>
        <td>${stu.sex }</td>
    </tr>
</c:forEach>
  1. 指定语句的执行次数
//begin开始位置,end结束位置,step循环的步长
<c:forEach var="varName" varStatus="varStatusName" begin="beginIndex" end="endIndex" step="step">
	主体内容
</c:forEach>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值