JSTL-EL表达式
一个EL表达式包含变量和操作符。任何存储在某个JSP作用范围(如:page、 request、session、application)的bean能被作为一个EL变量来使用。
另外,EL支持以下预定义的变量:
变量名称 说明
pageScope 一个包含所有page scope范围的变量集合 (a java.util.Map)
requestScope 一个包含所有request scope范围的变量集合 (a java.util.Map)
sessionScope 一个包含所有session scope范围的变量集合 (a java.util.Map)
applicationScope 一个包含所有application scope范围的变量集合 (a java.util.Map)
param 一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String值的方式赋值
paramValues 一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String数组的方式赋值
header 一个包含所有请求的头信息的集合, (a java.util.Map) ,通过每个头信息对应一个String值的方式赋值
headerValues 一个包含所有请求的头信息的集合 (a java.util.Map) ,通过每个头信息的值都保存在一个String数组的方式赋值
cookie 一个包含所有请求的 cookie集合 (a java.util.Map), 通过每一个cookie(javax.servlet.http.Cookie)对应一个cookie值的方式赋值
initParam 一个包含所有应用程序初始化参数的集合(a java.util.Map) ,通过每个参数分别对应一个String值的方式赋值
pageContext 一个javax.servlet.jsp.PageContext类的实例, 用来提供访问不同的请求数据
操作符描述了你对变量所期望的操作。如果你之前曾经使用过任何编程语言的话,在EL表达式中所使用的操作符对你来说可能看起来很熟悉。因为它们和那些在大多数语言中所支持的操作符一样。
. 访问一个bean属性或者 Map entry
[] 访问一个数组或者链表元素
() 对子表达式分组,用来改变赋值顺序
? : 条件语句,比如: 条件 ? ifTrue : ifFalse.如果条件为真,表达式值为前者,反之为后者
+ 数学运算符,加操作
- 数学运算符,减操作或者对一个值取反
* 数学运算符,乘操作
/ or div 数学运算符,除操作
% or mod 数学运算符,模操作(取余)
== or eq 逻辑运算符,判断符号左右两端是否相等,如果相等返回true,否则返回false
!= or ne 逻辑运算符,判断符号左右两端是否不相等,如果不相等返回true,否则返回false
< or lt 逻辑运算符,判断符号左边是否小于右边,如果小于返回true,否则返回false
> or gt 逻辑运算符,判断符号左边是否大于右边,如果大于返回true,否则返回false
<= or le 逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回true,否则返回false
>= or ge 逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回true,否则返回false
&& or and 逻辑运算符,与操作赋。如果左右两边同为true返回true,否则返回false
|| or or 逻辑运算符,或操作赋。如果左右两边有任何一边为true返回true,否则返回false
! or not 逻辑运算符,非操作赋。如果对true取运算返回false,否则返回true
empty 用来对一个空变量值进行判断: null、一个空String、空数组、空Map、没有条目的Collection集合
func(args) 调用方法, func是方法名,args是参数,可以没有,或者有一个、多个参数.参数间用逗号隔开
一个EL表达式可以包含:数字、文本(在单引号或者双引号之间)、布尔值、null值。
因为一个EL表达式可以出现在静态文本出现的地方,因此你必须告诉JSP容器它应该被当作一个EL表达式来处理。你可以通过使用定界符来做到这一点。
一个EL表达式总是以”${ }”来标记(一个“$”符号和一个左花括号,右花括号)。
函数,使用前需在jsp页面的首部加上以下代码:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
fn:contains(string, substring) 如果参数string中包含参数substring,返回true
fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, searchString)}">
fn:containsIgnoreCase(string, substring) 如果参数string中包含参数substring(忽略大小写),返回true
fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关)
<c:if test="${fn:containsIgnoreCase(name, searchString)}">
fn:endsWith(string, suffix) 如果参数 string 以参数suffix结尾,返回true
fn:endsWith 判断字符串是否以另外字符串结束 <c:if test="${fn:endsWith(filename, ".txt")}">
fn:escapeXml(string) 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回
fn:escapeXml 把一些字符转成XML表示,例如 <字符应该转为< ${fn:escapeXml(param:info)}
fn:indexOf(string, substring) 返回参数substring在参数string中第一次出现的位置
fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, "-")}
fn:join(array, separator) 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
fn:join 将数组中的数据联合成一个新字符串,并使用指定字符格开 ${fn:join(array, ";")}
fn:length(item) 返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。
fn:length 获取字符串的长度,或者数组的大小 ${fn:length(shoppingCart.products)}
fn:replace(string, before, after) 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
fn:replace 替换字符串中指定的字符 ${fn:replace(text, "-", "•")}
fn:split(string, separator) 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素
fn:split 把字符串按照指定字符切分 ${fn:split(customerNames, ";")}
fn:startsWith(string, prefix) 如果参数string以参数prefix开头,返回true
fn:startsWith 判断字符串是否以某个子串开始 <c:if test="${fn:startsWith(product.id, "100-")}">
fn:substring(string, begin, end) 返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符
fn:substring 获取子串 ${fn:substring(zip, 6, -1)}
fn:substringAfter(string, substring) 返回参数substring在参数string中后面的那一部分字符串
fn:substringAfter 获取从某个字符所在位置开始的子串${fn:substringAfter(zip, "-")}
fn:substringBefore(string, substring) 返回参数substring在参数string中前面的那一部分字符串
fn:substringBefore 获取从开始到某个字符所在位置的子串 ${fn:substringBefore(zip, "-")}
fn:toLowerCase(string) 将参数string所有的字符变为小写,并将其返回
fn:toLowerCase 转为小写 ${fn.toLowerCase(product.name)}
fn:toUpperCase(string) 将参数string所有的字符变为大写,并将其返回
fn:toUpperCase 转为大写字符 ${fn.UpperCase(product.name)}
fn:trim(string) 去除参数string 首尾的空格,并将其返回
fn:trim 去除字符串前后的空格 ${fn.trim(name)}
分享到:
相关推荐
FN函数是JSTL提供的一个功能强大的工具,包含在`javax.servlet.jsp.jstl.fn`包下,提供了一系列实用的方法,用于处理字符串、数组、集合等数据类型。 FN函数库主要由以下几部分组成: 1. **字符串处理**:例如`fn:...
1. jstl-api-1.2.1.jar:这是JSTL的API接口定义,包含了JSTL的所有标签和EL表达式的接口定义。开发者在编写代码时主要引用这个jar包,通过这些接口可以调用JSTL提供的功能。 2. jstl-1.2.jar:这是JSTL的核心实现库...
本资源主要讲解了如何在JSTL中定义和使用自定义的EL表达式,这对于提高JSP页面的可读性和可维护性至关重要。 首先,理解JSTL的基础概念。JSTL由几个核心标签库组成,如fmt、fn、sql、xml等,它们提供了处理日期和...
EL表达式通常以`${}`包裹,它能够直接访问作用域中的对象,如request、session、application等。EL的优势在于其简洁性,可以快速地访问和操作数据,而无需编写大量的Java脚本。 **相关jar包**: - **standard.jar**...
为了增强EL的功能,我们可以引入JavaServer Pages Standard Tag Library (JSTL) 中的函数库,其中`fn`是提供了一系列字符串处理和集合操作的函数。以下是对描述中提到的`fn`函数的详细解释: 1. **fn:contains** - ...
6. **JSTL与EL表达式(Expression Language)**:JSTL通常与JavaServer Pages Expression Language (EL) 结合使用,EL用于在JSP页面中访问和操作Java对象。EL表达式可以在JSTL标签中直接使用,简化了数据绑定。 7. ...
3. 使用JSTL和Standard库时,要正确配置Web应用的web.xml文件,指定JSP的版本和是否启用EL表达式。 总结来说,JSTL 1.2与Standard 1.1.2是Java Web开发中的关键工具,它们简化了JSP页面的编程,提高了代码质量。...
`standard.jar`则是JSTL实现的另一个关键组件,它包含了EL(Expression Language)的实现,也就是JSTL的表达式语言支持。EL是一种轻量级的脚本语言,允许在JSP页面中以简洁的方式访问和操作Java对象。`standard.jar`...
- **标签使用**:通过指定的前缀,可以调用JSTL库中的标签,如`${expression}" />`用于输出EL表达式的结果。 - **性能优化**:JSTL标签在运行时会被翻译成Java代码,因此使用得当可以提高页面的性能。但是过度依赖...
在EL中,可以使用`#`前缀来引用EL函数或变量,这些函数通常来自于JSTL库。例如,`#{fn:length(list)}`将返回`list`的长度。此外,`#`还可以用于访问页面上下文中的对象,如`${pageContext.request.contextPath}`可以...
在这个例子中,`<c:forEach>`标签用于遍历集合,并通过EL表达式`${list}`引用了页面范围内的`list`变量。 总的来说,JSTL为JSP开发提供了强大的工具集,通过其丰富的标签库,可以有效地组织和简化Web应用程序的视图...
3. **EL 支持**:在JSTL 1.2中,大部分标签都支持EL表达式,使得动态数据的处理更为便捷。 4. **国际化**:通过`<fmt>`库,开发者可以轻松实现多语言环境下的页面显示。 5. **安全增强**:JSTL 1.2 对SQL注入等...
**JSTL(JavaServer Pages Standard...例如,`<c:set>`标签可以结合EL表达式来设置变量,`<c:out>`标签用于安全地输出EL表达式的值。 **JSTL的使用** 在实际开发中,引入JSTL需要在JSP页面头部添加如下引用: ```jsp ...
EL表达式经常与JSTL一起使用,尤其是在JSTL的`c`(Core)标签库中。例如,`<c:if>`和`<c:forEach>`标签可以配合EL表达式进行条件判断和循环操作。通过这种方式,开发者可以将业务逻辑和视图层分离,提高代码的可读性...
EL表达式允许调用JavaBeans的公共方法,或者使用JSTL库提供的函数。例如,`fn:length()`函数可以用来计算字符串或集合的长度,如`${fn:length(name)}`。JSTL库还提供了其他许多有用的函数,如`fn:toUpperCase()`用于...
jstl 的 el表达式 涉及很多fn函数,jstl 的 el表达式 涉及很多fn函数
### jstl fn函数 and EL #### 概述 在Java Web开发中,JSTL(JavaServer Pages Standard Tag Library)是一种广泛使用的标签库,它为开发者提供了多种用于简化页面逻辑处理的功能。其中,`fn`函数是JSTL的一个重要...
需要首先引入相应的标签库声明,如 `<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>`,这行代码指定了 `fn` 前缀对应的URI,使得我们可以在EL表达式中直接使用 `fn` 前缀下的函数。...