Expression Language
EL表达式作用:替代Jsp页面中的Java代码
传统在jsp中用java代码显示数据的弊端:
1、类型转换
2、需要处理null
3、代码掺杂
“.”操作符示例:
使用方便
${requestScope.student}<br/>
学号:${requestScope.student.sno}<br/>
姓名:${requestScope.student.sname}<br/>
地址:${requestScope.student.saddress}<br/>
${requestScope.student.grade}<br/>
语文成绩:${requestScope.student.grade.chinese}<br/>
数学成绩:${requestScope.student.grade.math}<br/>
英语成绩:${requestScope.student.grade.english}<br/>
“[ ]”操作符
功能强大,可以包含特殊字符( . 、 - )
可以获取变量值
可以获取数组元素
${requestScope.student["grade"]["chinese"]}<br/>
hobbies:${requestScope.hobbies[0]}、${requestScope.hobbies[1]}、${ requestScope.hobbies[2]}
获取map属性
获取map<br>
${requestScope.map.cn }<br>
${requestScope.map["us"] }
关系运算符
关系运算符 | 示例 | 结果 | |
---|---|---|---|
大于 | >或gt | ${2>1}或 ${2 gt 1} | true |
大于或等于 | >=或ge | ${2>=1}或 ${2 ge 1} | true |
等于 | ==或eq | ${2==1}或 ${2 eq 1} | false |
小于或等于 | <=或le | ${2<=1}或 ${2 le 1} | false |
小于 | <或lt | ${2<1}或 ${2 lt 1} | false |
不等于 | !=或ne | ${2!=1}或 ${2 ne 1} | true |
逻辑运算符
与:&&(或and)
或:||(或or)
非:!(或not)
Empty运算符
判断一个值是不是null
所找值存在,返回false
所找值不存在,返回ture
Empty运算符<br>
${empty requestScope.student.sname}<br>
${empty requestScope.student.saddress}
EL表达式的隐式对象
隐式对象:即内置对象,不需要new即可使用的对象
a、作用域访问对象(EL域对象)
1、pageScope
2、requestScope
3、sessionScope
4、applicationScope
如果不指定域对象,则会根据从小到大的顺序进行查找
b、参数访问对象
获取表单/超链接数据
request.getParameter() --> $ {param}(获取单个元素值)
request.getParameterValues() -->${paramValues}(获取数组元素值)
示例:
${param.uname}<br>
${paramValues.hobbies[0]}<br>
${paramValues.hobbies[1]}<br>
${paramValues.hobbies[2]}<br>
c、JSP隐式对象
在jsp中可以通过pageContext获取其他的jsp隐式对象,因此如果要在EL中使用JSP隐式对象可以通过pageC间接获取
例如
${pageContext.request}
${pageContext.session}
${pageContext.response}
配合级联使用更能提高代码效率,如
${pageContext.request.serverPort}