一、el + jstl 入门
1. EL 全名为Expression Language。它是一种数据访问语言
el 表达式
2. EL 能实现如下功能:
1) 使用变量访问web域中存储的对象 ${user }
2) 访问javabean的属性 ${user.address.city }
3) 执行基本的逻辑运算
4) 直接使用隐式对象
5) 调用 el 函数
3. el 表达式用在哪里
1) 在 jsp 页面直接输出数据
2) 在标签中使用el直接为属性赋值
4. el 表达式获取数据
在jsp页面使用el表达式可以轻松地获得web域中的对象
并对 javabean 、 数组、 list 、 map 进行取值
5. 需要对 web 域中的 list 和map 集合进行迭代就需要结合 jstl 迭代标签
JSTL是sun公司开发的一套标签库
使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码
在页面中使用JSTL标签需完成以下2个步骤:
1) 导入jstl.jar和standard.jar这两个JSTL的jar文件。
2) 在JSP页面中使用<%@ taglib url=“” prifix=“” %>元素导入标签库。
最常用的 jstl 标签为 forEach 和 if 标签
<c:foreach var=”” items=””>
<c:if test=””>
6. el表达式可以进行逻辑运算
7. el表达式中的保留关键字
重点: el 取值 从四个域中取
取出javabean的属性
取出容器的内容 数组 list map
jstl标签
导入jar包
在jsp页面通过taglib指令导入标签库
forEach迭代标签 if条件判断
二、 el 中的11 个隐式对象
隐含对象名称 | 描 述 |
pageContext | 对应于JSP页面中的pageContext对象 |
pageScope | 代表page域中用于保存属性的Map对象 |
requestScope | 代表request域中用于保存属性的Map对象 |
sessionScope | 代表session域中用于保存属性的Map对象 |
applicationScope | 代表application域中用于保存属性的Map对象 |
param | 表示一个保存了所有请求参数的Map对象 |
paramValues | 表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[] |
header | 表示一个保存了所有http请求头字段的Map对象 |
headerValues | 同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”] |
cookie | 表示一个保存了所有cookie的Map对象 |
initParam | 表示一个保存了所有web应用初始化参数的map对象 |
隐式对象的具体用途
1. pageContext
获得servlet上下文路径 (web应用名)
2. pageScope、requestScope、sessionScope、applicationScope
准确地获得四个域中的对象
3. param、paramValues
获得请求参数,一般用于做表单的回显
4. header、headerValues
获得请求参数
5. cookie
获得浏览器发送的cookie
6. initParam
获得web 初始化参数
三、 el 函数
1. 我们可以开发自定义函数,用于调用java类的方法
案例: 对页面输出的内容进行 html 转义
实现步骤:
1) 编写一个java类, 定义一个静态方法
去tomcat的例子中拷贝一个现成的
%tomcat安装目录%\webapps\examples\WEB-INF\classes
2) 编写标签库描述符(tld)文件,在tld文件中描述自定义函数
找个现成的修改一下
%tomcat安装目录%\webapps\examples\WEB-INF\jsp2
3) 在jsp页面中导入标签库 即可使用函数
<%@ taglib prefix="myfn" uri="/WEB-INF/myfn.tld" %>
<%@ taglib prefix="myfn" uri="http://www.itcast.cn/myfn" %>
帖子的内容 : ${myfn:transfer(requestScope.data) }
2. sun 公司针对常用的字符串处理在jstl技术中提供了el函数中