EL表达式是Expression Language(表达式语言)可以替代JSP页面中数据访问时的复杂编码可以自动转换类型,并且使JSP的开发变得更加简单。
语法:${变量名}
// 在Servlet或JSP中保存数据
request.setAttribute("username", "LiYang");
// 在JSP中访问数据
姓名: ${username}
按照page → request → session → application的作用域顺序依次查找,找到即返回,最终找不到返回null。
点操作符———> ${user.name}
[ ]操作符———>${user["name"]}
Empty操作符
Empty操作符是一个前缀操作符,用于检测一个变量值是否为null或者为empty
例如:变量a不存在,则${empty a}返回的结果为true,${not empty a}返回的结果是false.
EL隐式对象介绍
JSTL是JSP标准标签库(JSP Standard Tag Library),提供一组标准标签,可用于编写各种动态功能.JSTL通常会与EL表达式合作实现JSP页面的编码.
JSTL常用标签有:set out remove if choose forEach
set:设置指定范围内的变量值
1将value值存储到范围为scope的变量variable中
—var属性值是设置的变量名
—value属性的值是富裕变量的值
—scope属性对应的是变量的作用域
2将value值设置到对象的属性中
—target属性是操作的JavaBean对象,可以用EL表达式来表示
—proprety属性对应JavaBean对象的属性名
—value属性是赋予JavaBean对象属性的值
out:计算表达式并将结果输出显示,类似于JSP中<%= %>,但功能更强大,代码更简洁
1不指定默认值
—value属性指需要输出的表达式的结果,可以通过EL表达式获取。
2指定默认值
—default属性是value属性的值为空时输出的默认值
remove:删除指定范围内的变量
—var属性是指待移除的变量名称
—scope属性是指移除的变量所在的范围。
if:实现Java语言中if语句的功能
…
—test属性是判断条件,当condition(可用EL表达式)的结果为true时,会执行主体内容,如果为false则不会执行。
—var属性定义变量,该变量存放判断的结果,该属性可省略
—scope属性是指var定义变量的存储范围。
choose:实现if - else if - else语句的功能
内容1
内容2
……
内容n
—
—
—
—在运行时,判断
forEach:实现对集合对象的遍历
…循环体代码…
—var表示对当前成员的引用,即如果当前循环到第一个成员var就引用第一个成员,如果当前循环到第二个成员,他就引用第二个成员,以此类推。
—varStatus属性用于存放var引用的成员相关信息,如索引等。
—begin属性表示开始位置默认为0,该属性可省略
—end属性表示结束位置,该属性可省略
—step属性表示循环的步长,默认为1,该属性可省略
—items指被迭代的对象