EL全名为Expression Language;EL是为了让JSP写起来更加简单,是可以简化对变量的对象的访问;
语法:${EL Experssion};
在jsp页面中EL表达式是默认启用的,当需要关闭的时候,可在指令上加上 :isELIgnored ="true";即可关闭,isELIgnored,译为:是否忽略EL表达式;
EL表达式主要作用于以下情形:
- 静态文本;
- 标签和自定义标签;
- EL表达式不能在脚本元素中使用。脚本元素不是指JavaScript脚本,而是 <%@ Java代码%>;
EL表达式的操作内容可以是常量、变量、jsp隐含对象;
EL表达式还提供了对操作内容的运算,如属性取值、运算、逻辑运算;其操作结果会自定输出到输出流对象中;
1. EL使用”[ ]”操作符来访问数据
<body>
<!-- EL表达式 -->
<p>用户:${name}</p>
<p>密码:${password}</p>
</body>
2. EL使用”.”操作符来访问数据
<body>
<!-- EL表达式 -->
<p>年龄:${age}</p>
<!-- 第二种写法 -->
${person.age}
${person.name}
</body>
效果分别如下:
[] ‘.’
第一种写法大多数情况下是等于第二种写法,但也不是肯定的,如:
<body>
<!-- EL表达式 -->
<!-- 第一种写法 大多数情况下一等于二,但不是绝对-->
${header.user-Agent}<br>
<!-- 第二种写法 -->
${header["user-Agent"]}
</body>
效果如下:
EL运算符:
<body>
<!--EL算数运算符 -->
EL关系运算
<p>1+1=${1+1}</p>
<p>1-1=${1-1}</p>
<p>1*1=${1*2}</p>
<p>1/1=${1/2}</p>
</body>
同时,除法可以写成 div ,取余可以写成 mod ;需要注意的是,它们之间需要间距;如:
<body>
EL关系运算
<p>1+1=${1+1}</p>
<p>1-1=${1-1}</p>
<p>1*1=${1*1}</p>
<p>1/1=${1/1}</p>
<p>1/1=${1 div 1}</p>
<p>3%5=${3%5}</p>
<p>3%5=${3 mod 5}</p>
</body>
常见运算符:
==(eq) !=(ne) <(lt) >(gt) <=(le) >=(ge) &&(and) ||(or) !(not);
${empty name } 用来判断值是否为null或为空;
()括号运算符,用来改变执行优先权;
三目运算符等。
隐式对象:
EL表达式的作用域:PageScope、RequestScope、sessionScope、applicationScope;