Advertisement

EL表达式的详解

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本篇文章详细解析了Java服务器页面( JSP)中EL(Expression Language)表达式的使用方法、语法结构及其功能,并列举了多个实例帮助读者更好地理解和掌握。适合初学者阅读学习。 EL表达式详解: 1. EL简介 - 语法结构:${expression} - 运算符: - 点(`.`)和方括号`[]`运算符用于访问数据。 - 当属性名包含特殊字符如点或问号时,应使用方括号。例如:`${user[My-Name]}` - 方括号允许动态取值。 2. 变量 EL通过变量存取数据的方式是简单的,比如${username}表示查找名为`username`的变量。它会依次在Page、Request、Session和Application范围中搜索该变量,找到即返回其值;未找到则返回null。 3. 隐含对象 - 范围相关的隐含对象:包括pageScope, requestScope, sessionScope 和 applicationScope。 - 输入相关隐含对象:param和paramValues用于获取请求参数。 - 其他隐含对象: - cookie: 获取cookie值,如${cookie.userCountry}。 - header和headerValues: 可以用来取得浏览器和服务端通信的数据。 - initParam: 通过${initParam.userid}来获得web站点的环境配置参数。 4. 条件标签 - 算术运算符:+、-、*(乘)、/或div(除)和%或mod(取模) - 关系运算符:==或eq, !=或ne, <或lt, >或gt, <=或le, >=或ge - 逻辑运算符:&&或and, ||或or,! 或not 5. EL函数(functions) 语法格式为ns:function(arg1,arg2,...),其中`ns`是前缀名。 6. 补充说明: EL大大简化了编码量。例如`${logininfo.username}`将输出对象的username属性值到页面中;如果需要指定搜索范围,可以使用${pageScope.logininfo.username}、${requestScope.logininfo.username}等来明确查找位置。 在Spring MVC框架下,默认的结果数据存放在`request`范围内。 7. 迭代标签 语法结构: ` ` 8. 条件判断 - 使用, - 类似Java中的switch-case结构。 9. 其他标签: 例如,用于格式化日期;类似地可以使用``来格式化数字。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • EL
    优质
    本篇文章详细解析了Java服务器页面( JSP)中EL(Expression Language)表达式的使用方法、语法结构及其功能,并列举了多个实例帮助读者更好地理解和掌握。适合初学者阅读学习。 EL表达式详解: 1. EL简介 - 语法结构:${expression} - 运算符: - 点(`.`)和方括号`[]`运算符用于访问数据。 - 当属性名包含特殊字符如点或问号时,应使用方括号。例如:`${user[My-Name]}` - 方括号允许动态取值。 2. 变量 EL通过变量存取数据的方式是简单的,比如${username}表示查找名为`username`的变量。它会依次在Page、Request、Session和Application范围中搜索该变量,找到即返回其值;未找到则返回null。 3. 隐含对象 - 范围相关的隐含对象:包括pageScope, requestScope, sessionScope 和 applicationScope。 - 输入相关隐含对象:param和paramValues用于获取请求参数。 - 其他隐含对象: - cookie: 获取cookie值,如${cookie.userCountry}。 - header和headerValues: 可以用来取得浏览器和服务端通信的数据。 - initParam: 通过${initParam.userid}来获得web站点的环境配置参数。 4. 条件标签 - 算术运算符:+、-、*(乘)、/或div(除)和%或mod(取模) - 关系运算符:==或eq, !=或ne, <或lt, >或gt, <=或le, >=或ge - 逻辑运算符:&&或and, ||或or,! 或not 5. EL函数(functions) 语法格式为ns:function(arg1,arg2,...),其中`ns`是前缀名。 6. 补充说明: EL大大简化了编码量。例如`${logininfo.username}`将输出对象的username属性值到页面中;如果需要指定搜索范围,可以使用${pageScope.logininfo.username}、${requestScope.logininfo.username}等来明确查找位置。 在Spring MVC框架下,默认的结果数据存放在`request`范围内。 7. 迭代标签 语法结构: ` ` 8. 条件判断 - 使用, - 类似Java中的switch-case结构。 9. 其他标签: 例如,用于格式化日期;类似地可以使用``来格式化数字。
  • Cron
    优质
    本文详细介绍了Cron表达式的构成和使用方法,帮助读者掌握其在定时任务中的应用技巧。适合开发者参考学习。 cron是一个用于在Unix操作系统下计划任务的守护进程。它使用一种简单的文本格式来表示时间调度规则,这种格式被称为cron表达式。 一个标准的cron表达式由七个字段组成(有些实现可能只有六个),这些字段按照以下顺序排列:秒 分钟 小时 月份中的日期 星期几 年份(可选)。每个字段都可以包含星号(*)来表示该时间范围内的所有值,或者使用逗号(,)分隔的多个值、连字符(-)定义一个区间或斜线(/)指定步长。 例如,“0 15 * * 1” 表示每周一执行一次任务,在每天下午3:15进行。这种表达式为系统管理员提供了灵活且强大的方式来安排各种定时作业,如备份数据、清理日志文件等自动化管理操作。
  • 正则
    优质
    正则表达式详解:本文深入浅出地讲解了正则表达式的概念、语法及应用技巧,适合编程初学者和进阶者阅读,帮助读者掌握文本处理与模式匹配的强大工具。 在表单验证的过程中,需要确保用户输入的数据符合特定规则,并且完整无误地提交数据。下面是几个重要的函数用于处理不同的验证需求: 1. **Checkbox 验证**:此功能检查复选框是否被选中。 2. **Radio 按钮验证**:确认至少有一个单选按钮被选择。 3. **Select 下拉菜单验证**:确保用户选择了下拉列表中的一个选项。 此外,还有处理日期、电子邮件地址等特定类型的输入验证。这里提供了一个名为 `validateForm` 的函数来执行整个表单的校验流程: ```javascript function validateForm(theForm) { var disableList = new Array(); var field = theForm.elements; // 将所有元素放入数组 for (var i = 0; i < field.length; i++) { if (field[i].validatorType != null) { // 处理特殊验证 switch(field[i].validatorType){ case javascript: var rs = eval(field[i].functionName+()); break; case disable:// 提交表单前禁用的按钮 disableList.push(field[i]); continue; case Date: validateDate(theForm.elements[field[i].fieldName], field[i].format, field[i].errorInfo); break; // 日期验证 case Checkbox: if(!validateCheckbox(theForm.elements[field[i].fieldName],field[i].errorInfo)){ return false; } break; // 复选框校验 case Radio: if (!validateRadio(theForm.elements[field[i].fieldName], field[i].errorInfo)) { return false; } break; // 单选项验证 case Select: validateSelect(theForm.elements[field[i].fieldName],field[i].errorInfo); break; // 下拉菜单校验 } } else { // 常规的正则表达式验证 var reg = new RegExp(field[i].validator); if (!reg.test(field[i].value)){ alert(field[i].errorInfo); field[i].focus(); return false; } } } for (var i=0; i
  • 正则
    优质
    本教程详细解析了正则表达式的概念、语法及其在多种编程语言中的应用,旨在帮助读者掌握利用正则表达式进行文本匹配与替换技巧。 《正则表达式入门经典》是一本关于正则表达式的书籍,包含扫描版的chm文件以及对正则表达式的解释器实现原理等内容。由于文件较大,我们将其分段上传。这本书包含了我们在博客中提到的相关内容。
  • cron
    优质
    本文将详细介绍cron表达式的工作原理和语法结构,并提供实用示例来帮助读者掌握其使用方法。 Cron表达式是一个由5或6个空格隔开的字符串,分为6或7个部分,每个部分代表不同的含义。本段落将详细介绍cron表达式的相关内容,有兴趣的朋友可以一起阅读。
  • Java正则
    优质
    《Java正则表达式详解》一书深入浅出地介绍了如何在Java中运用正则表达式进行字符串操作和模式匹配,是学习掌握Java正则技巧的实用指南。 JAVA 正则表达式 这段文字仅包含“JAVA 正则表达式”这一内容的重复表述,并无其他联系信息或具体内容需要删除。因此,保持原句不变即可。如果意图是获取关于Java正则表达式的更多信息或者示例代码等内容,则建议查阅相关技术文档或教程以获得帮助。
  • 正则(RegExp)
    优质
    本文章详细介绍了正则表达式的概念、语法及其应用,帮助读者掌握如何使用正则表达式进行文本匹配和操作。 ### 正则表达式(Regexp)基础知识及高级应用 #### 一、正则表达式的概念与作用 正则表达式(Regular Expression),通常简称为“regex”或“regexp”,是一种用于模式匹配的强大工具,广泛应用于文本处理领域,如搜索、替换以及数据验证等场景。在计算机科学中,正则表达式被用来描述一组字符串——所有符合某个模式的字符串集合。 #### 二、正则表达式的语言特性 正则表达式本质上是一门“小语言”,它由一系列特殊字符和普通字符组成,用于定义字符串模式。这些特殊字符具有特定的意义,能够帮助我们精确地匹配文本中的模式。 ##### 2.1 基础元字符 - **`.` (点)**:匹配任意单个字符,除了换行符。 - **`^`**:匹配字符串的开头。 - **`$`**:匹配字符串的结尾。 - **`*`**:匹配前面的表达式零次或多次。 - **`+`**:匹配前面的表达式一次或多次。 - **`?`**:匹配前面的表达式零次或一次。 - **`[]`**:指定一个字符集,匹配括号内的任意一个字符。 - **`|`**:表示逻辑或,即匹配任一表达式。 - **`()`**:定义捕获组,可以对匹配结果进行进一步操作。 - **`{m,n}`**:指定重复次数范围,匹配前面的表达式至少 m 次,最多 n 次。 ##### 2.2 字符类 - **`d`**:匹配任何数字字符,等价于 `[0-9]`。 - **`D`**:匹配任何非数字字符,等价于 `[^0-9]`。 - **`w`**:匹配任何字母或数字字符,等价于 `[a-zA-Z0-9_]`。 - **`W`**:匹配任何非字母或数字字符,等价于 `[^a-zA-Z0-9_]`。 - **`s`**:匹配任何空白字符,包括空格、制表符、换页符等。 - **`S`**:匹配任何非空白字符。 ##### 2.3 边界匹配 - **`b`**:匹配单词边界。 - **`B`**:匹配非单词边界。 #### 三、正则表达式的应用案例 正则表达式在实际开发和日常工作中有着广泛的应用: ##### 3.1 文本搜索 使用正则表达式可以快速地在大量文本中查找特定的模式。例如,在日志文件中搜索特定的错误信息。 ##### 3.2 数据验证 正则表达式常用于验证用户输入的数据格式是否正确,比如邮箱地址、电话号码等。 ##### 3.3 数据提取 可以从复杂的文本中提取有用的信息。例如,从网页源码中提取出所有的URL链接。 ##### 3.4 文本替换 可以利用正则表达式来进行复杂的文本替换工作,比如将文档中的某些词汇替换成其他词汇。 #### 四、正则表达式的实现与工具 正则表达式支持多种编程语言和工具,常见的有: - **Perl**:Perl 是正则表达式功能最强大的语言之一,其语法简洁且强大。 - **Python**:Python 中的 `re` 模块提供了正则表达式的功能。 - **JavaScript**:JavaScript 也内置了正则表达式的支持。 - **grep/grep**:Unix/Linux 下的命令行工具,用于在文件中搜索匹配正则表达式的行。 #### 五、正则表达式的高级主题 对于更深入的学习者来说,还可以探索以下高级主题: - **反向引用**:在正则表达式中使用捕获组的结果。 - **前瞻断言**:用于检查当前位置之后的文本是否满足某个条件。 - **后瞻断言**:用于检查当前位置之前的文本是否满足某个条件。 - **贪婪与懒惰匹配**:控制正则表达式的匹配行为。 - **原子组和递归模式**:解决复杂的嵌套结构匹配问题。 #### 六、学习资源 - 《Mastering Regular Expressions》:本书由 Jeffrey E.F. Friedl 编写,是学习正则表达式的经典之作。 - 在线教程:许多网站提供免费的正则表达式教程和练习。 - 社区论坛:如 Stack Overflow 等技术论坛,可以找到大量关于正则表达式的讨论和实例。 通过系统地学习和实践,你可以掌握正则表达式的各种技巧,并在实际工作中灵活运用。
  • 正则
    优质
    正则表达式是一种强大的文本处理工具,用于描述特定模式的字符串集。本教程深入浅出地解析其语法和应用技巧,帮助读者掌握高效编程与数据处理技能。 ### 正则表达式详解 #### 什么是正则表达式? 正则表达式(简称regex或regexp)是一种用于处理文本的强大工具,它允许用户通过模式匹配来搜索、替换或提取字符串中的特定信息。它的核心在于高度的灵活性和强大的表现力,能够帮助开发者高效地解决各种文本处理任务。 #### 正则表达式的构成基础 正则表达式由多种元素组成: - **字符表示**:指的是单个的字符,如`a`、`b`、`1`或`2`。 - **字符类**:使用方括号`[]`来包含一系列字符。例如, `[abc] `将匹配到字母 `a`, `b`, 或者 `c`. - **类似(class-like)的结构**:如字母数字字符用 `w` 表示, 数字则用 `d` - **锚和0宽断言**:比如使用`^`表示字符串开始, `$` 表示结束。而正向先行断言则通过 `(?=)` 来实现。 - **注释和模式变换**:用于在表达式中插入说明或进行转换操作。 - **分组、捕获及条件控制**:利用圆括号 `()` 创建捕获组,可以使用反向引用如`1`来指代前面的捕获内容。 - **Unicode支持**:正则表达式能够处理全球各种语言字符集中的文本信息。 - **通用正则表达式语法**:被多种编程语言和工具广泛接受。 #### 正则表达式的应用案例 以下是一些具体的应用示例: - 移除字符串首尾的空白符,可以使用 `^s+|s+$` ; - 匹配1到6位数字,可以用正则表达式 `d{1,6}` 实现; - 验证HTML颜色编码(如#FFFFFF): 使用模式 `#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})` 。 - 匹配美国社会保险号码(SSN),例如使用正则表达式 `d{3}-d{2}-d{4}`; - 验证邮政编码: 使用 `d{5}(-d{4})?` 来匹配五位或九位的ZIP代码; - 校验货币格式,如 `$10.99` 或者 `£1.23`, 可使用模式 `[$€£]?d+(.d{2})?` - 匹配日期时间(MMDDYYYY HH:MM:SS): 使用正则表达式 `d{2}d{2}d{4}s d{2}: d{2}: d{2}`; - Unix风格路径匹配,利用模式 `[^]+([^]+)*`; - IPv4地址的验证可以使用 `(d{1,3}.){3}d{1,3}`; - MAC地址识别: 使用正则表达式 `[0-9A-Fa-f]{2}([:-][0-9A-Fa-f]{2}){5}`; - 检验电子邮件格式,如 `example@example.com` 可使用模式 `[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}`; - 验证HTTP或HTTPS URL: 使用正则表达式 `http[s]?:(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+`; #### 正则表达式的使用环境 支持正则表达式的编程语言和工具包括: - **Perl**: 提供了丰富的正则功能,如 `qr`, `m`, `s` 和 `split`. - **Java**: 通过`java.util.regex`包实现模式匹配。 - **.NET and C#**:使用内置的Regex类进行操作; - **PHP**:利用函数如 `preg_match` 及 `preg_replace`; - **Python**:借助于re模块完成正则表达式处理; - **Ruby**: 支持面向对象接口,包括 String, Regexp 和 MatchData 类。 - **JavaScript**: 使用 RegExp 对象实现功能; - PCRE(Perl Compatible Regular Expressions): 一种在服务器端广泛使用的库; - Apache Web Server:通过 `RewriteRule` 和 `MatchingDirectives` 指令进行URL重写和匹配操作; - Vi Editor:允许使用正则表达式执行搜索及替换任务。 - Shell Tools: 如 egrep, sed 和 awk 等命令行工具支持正则表达式功能。 正则表达式作为强大的文本处理技术,在开发与运维工作中不可或缺。
  • Python中正则
    优质
    本文章深入探讨了在Python中使用正则表达式的技巧和方法,详细解释其语法及应用实例,帮助读者掌握高效的数据处理与模式匹配技术。 在Python编程中经常使用基础篇正则表达式,因为它可以进行任意匹配,并提取我们想要的信息。接触正则后会发现它的强大之处。Python有一个名为re的库,在许多项目中都会频繁调用这个库来处理与字符串匹配相关的问题。 字符串是编程中最常用的数据结构之一,对它们的操作需求无处不在。例如,判断一个字符串是否为合法电子邮件地址时,尽管可以编写代码提取“@”前后的内容并分别检查其是否符合单词和域名的规则,但这种方式既复杂又难以复用。因此,正则表达式作为匹配字符串的强大工具应运而生。它的理念是通过一种描述性语言定义一个模式或规则,并利用该规则来判断给定的字符串是否满足条件,即“匹配”。