EL表达式与JSTL标准标签库

EL表达式与JSTL标准标签库

EL表达式与JSTL标准标签库

1. 什么是EL表达式?

EL表达式全称:Expression Language 表达式语言,由SUN公司推出
EL表达式作用:简化JSP代码,代替复杂的Java代码,从此JSP中不会出现Java代码

2. 运行环境

JSTL与EL表达式必须支持在J2EE1.4、Servlet2.4、JSP2.0版本,从Tomcat5以后就有这个版本了,这个环境已经很普遍

3. EL表达式的语法

EL表达式由${}组成,例如:${}

  • 普通类型:${key值}request.getAttribute("key值")
  • 对象类型;${key值.属性名}${key值["属性名"]}
  • ${list[0].userName }
  • ${map["a"].userName }

注:其中的属性名并不是类中的属性名称,是调用了属性名的get方法,首字母变大写,前面加get,类中属性名的命名前两个字母不允许出现大写

4. EL表达式内置对象

4.1 参数访问对象

${param.参数名}request.getParameter("参数名");
${paramValues.参数名}request.getParameterValues("参数名");

4.2 作用域访问对象

pageContext:$(pageScope.key值)
request:$(requestScope.key值)
session:$(sessionScope.key值)
application:$(applicationScope.key值)


注:如果不指定作用域先由小到大去查询,顺序为:pageContext、request、session、application

4.3 JSP页面信息对象

JSP页面信息内置对象:pageContext

5. 常用的转义符

符号 释义
== eq
!= ne
< lt
<= le
> gt
>= ge
&& and
! not

6. JSTL

6.1 什么是JSTL?

JSTL全称:JavaServerPage Standard Tag Library(JSP标准标签库)

6.2 JSTL标签库包含哪些?

  • 核心库
  • 函数库
  • SQL库(几乎不用)

7. 核心库(☆)

7.1 核心库标签

引用指令:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
核心库语法:<c:标签名></c:标签名>

7.2 常用标签

标签 描述
<c:out> 用于输出
<c:set> 把变量存储到指定的范围中,scope默认为:page
<c:remover> 删除指定范围的变量,scope不写删除四个范围
<c:if> 用于条件判断
<c:choose> 用于一组的条件判断
<c:when> 一组判断条件中的某个判断,结合<c:choose>使用
<c:otherwise> 一组条件中的else,结合<c:choose>使用
<c:foreach> 用于循环遍历

8. 格式化库

8.1 格式化标签库

作用:格式时间、格式数字

引用指令:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
格式化库语法:<fmt:标签名></fmt:标签名>

8.2 常用标签

格式化时间:<fmt:formatDate value="${date }"/>
格式化数字:<fmt:formatNumber value="${num }"/>

9. 函数库

9.1 函数标签库

作用:利用函数得到相应的结果

引用指令:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
语法:${fn:函数名}

9.2 常用函数:

  • fn:contains(string, substring)

    • 如果参数string中包含参数substring,返回true
  • fn:containsIgnoreCase(string, substring)

    • 如果参数string中包含参数substring(忽略大小写),返回true
  • fn:endsWith(string, suffix)

    • 如果参数 string 以参数suffix结尾,返回true
  • fn:escapeXml(string)

    • 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回
  • fn:indexOf(string, substring)

    • 返回参数substring在参数string中第一次出现的位置
  • fn:join(array, separator)

    • 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
  • fn:length(item)

    • 返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。
  • fn:replace(string, before, after)

    • 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
  • fn:split(string, separator)

    • 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素
  • fn:startsWith(string, prefix)

    • 如果参数string以参数prefix开头,返回true
  • fn:substring(string, begin, end)

    • 返回参数string部分字符串, 从参数begin开始到参数end位置
  • fn:substringAfter(string, substring)

    • 返回参数substring在参数string中后面的那一部分字符串
  • fn:substringBefore(string, substring)

    • 返回参数substring在参数string中前面的那一部分字符串
  • fn:toLowerCase(string)

    • 将参数string所有的字符变为小写,并将其返回
  • fn:toUpperCase(string)

    • 将参数string所有的字符变为大写,并将其返回
  • fn:trim(string)

    • 去除参数string 首尾的空格,并将其返回