EL表达式与JSTL标签库详解
需积分: 16 29 浏览量
更新于2024-08-05
收藏 13KB MD 举报
"EL表达式和JSTL标签库笔记"
EL(Expression Language)表达式是Java Web开发中用于简化页面数据访问的一种强大的语法,它主要用于数据的输出和基本的运算。JSTL(JavaServer Pages Standard Tag Library)标签库则提供了一系列的标签,帮助开发者在JSP页面中执行常见任务,如循环、条件判断、XML处理等,以减少页面上的Java脚本代码。
#### EL表达式
1. **EL表达式的作用**:EL表达式主要用于替代JSP页面中的脚本表达式,用于从四大域对象(pageContext、request、session、application)中获取并输出数据。这使得页面更加简洁,易于阅读和维护。
2. **EL表达式的特点**:当EL表达式遇到null值时,它会输出一个空字符串,而传统的JSP表达式会输出"null"字符串。
3. **搜索域的顺序**:EL表达式在查找变量时遵循特定的顺序,即`pageContext` -> `request` -> `session` -> `application`。这意味着它首先会在局部范围内查找变量,如果找不到,会逐渐向更大的范围扩展。
4. **EL表达式的输出**:
- `${p}`:输出对象`p`的地址。
- `${p.name}`:输出`p`对象的`name`属性的值。
- `${p.phones}`:输出`phones`数组的地址。
- `${p.phones[1]}`:输出数组中索引为1的元素。
- `${p.cities}`:输出`cities`数组的内容,如`[v1, v2, v3]`。
- `${p.cities[1]}`:输出数组第二个元素`v2`。
- `${p.map}`:输出`map`对象的内容,如`{key=value, key2=value2}`。
- `${p.map['key']}`:通过中括号模式获取键为`key`的值。
- `${p.map.key}`:通过点号模式获取键为`key`的值。
5. **EL表达式的运算**:
- **关系运算**:例如`${12 == 12}` 和 `${12 eq 12}` 都表示相等。
- **逻辑运算**:例如`${12 != 12}` 或 `${12 ne 12}` 表示不等。
- **算术运算**:支持基本的加减乘除操作,如`${5 + 3}`。
- **empty运算**:用于检查值是否为空或空集合,如`${empty p}`。
#### EL的11个隐含对象
除了JSP的九大内置对象外,EL还提供了11个隐含对象:
1. `pageContext`:提供对整个页面上下文的访问,可以获取其他八大内置对象。
2. `pageScope`:提供对pageContext域的访问,类型为`Map<String, Object>`。
3. `requestScope`、`sessionScope`、`applicationScope`:分别对应请求、会话和应用域的映射。
4. `param` 和 `paramValues`:用于获取请求参数。
5. `header` 和 `headerValues`:获取HTTP头信息。
6. `initParam`:获取servlet初始化参数。
7. `cookie`:访问HTTP请求中的cookie。
8. `page`:引用当前的JSP页面实例。
9. `out`:引用JSP的`javax.servlet.jsp.JspWriter`对象,用于输出内容。
10. `exception`:在错误处理中,引用了捕获的异常对象。
11. `config`:引用了servlet配置对象`javax.servlet.ServletConfig`。
#### JSTL标签库
JSTL标签库包括几个核心标签库,如Core、XML、JDBC、Functions等。其中,Core库提供了诸如迭代、条件判断、URL处理等功能,显著减少了JSP页面中的Java代码。例如:
- `<c:forEach>`:用于遍历集合。
- `<c:if>` 和 `<c:choose>`:实现条件判断。
- `<c:set>`:设置变量。
- `<c:remove>`:移除域中的变量。
JSTL的使用使得JSP页面更符合MVC模式,提高了代码的可读性和可维护性。结合EL表达式,开发者可以创建出更加高效和简洁的Web应用。
2021-03-22 上传
2021-12-27 上传
点击了解资源详情
点击了解资源详情
2013-04-25 上传
2016-02-22 上传
2012-03-19 上传
点击了解资源详情
点击了解资源详情
2023-05-31 上传
RoganL
- 粉丝: 0
- 资源: 1
最新资源
- 俄罗斯RTSD数据集实现交通标志实时检测
- 易语言开发的文件批量改名工具使用Ex_Dui美化界面
- 爱心援助动态网页教程:前端开发实战指南
- 复旦微电子数字电路课件4章同步时序电路详解
- Dylan Manley的编程投资组合登录页面设计介绍
- Python实现H3K4me3与H3K27ac表观遗传标记域长度分析
- 易语言开源播放器项目:简易界面与强大的音频支持
- 介绍rxtx2.2全系统环境下的Java版本使用
- ZStack-CC2530 半开源协议栈使用与安装指南
- 易语言实现的八斗平台与淘宝评论采集软件开发
- Christiano响应式网站项目设计与技术特点
- QT图形框架中QGraphicRectItem的插入与缩放技术
- 组合逻辑电路深入解析与习题教程
- Vue+ECharts实现中国地图3D展示与交互功能
- MiSTer_MAME_SCRIPTS:自动下载MAME与HBMAME脚本指南
- 前端技术精髓:构建响应式盆栽展示网站