EL表达式
今天我们学习的是EL表达式,可以说是第一次接触到这个词。所以在学习之前,有这样的提示:JSP表达式语言(Expression Language),简称EL。EL为存取变量、表达式运算和读取内置对象等内容提供了新的操作方式。
EL表达式:
<html>
<body>
${studentName+1}
</body>
</html>
返回结果为1.
2、EL表达式的基本语法:
EL表达式的语法格式:${标识符}。它以必须以“${”开始,以“}”结束。
在JSP页面中使用的形式,通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。如果域对象中不存在标识符所对应的对象,则返回结果为“”(注意,不是null)。
3、JSP EL用于以下情形:
(1)用于静态文本中
(2)标准标签和自定义标签(可以作为元素属性的值,也可以在自定义或者标准动作元素的内容中使用)
(3)EL不能在脚本元素中使用。例如<% ${} %>,这是错误的。
4、 []与. 运算符
${student.name}类中属性名称:
${student[“name”]}
${student[name]}:name变量,先取变量name的值。
${student.name}等价于${student [“name”]}
算术表达式:5+3=${5+3}
关系运算符:5>3 ${5>3}
逻辑运算符:true && false ${true && false}
\代表原样输出。例如:\${5+4}
验证运算符:empty作为前缀,用来检索一个值是否为null或empty。例:${empty userName}
条件运算符:${empty student.name ? ‘空’ : ‘非空’}
5、EL的内置对象:
(1)pageScope requestScope sessionScope applicationScope
${pageScope.属性名}
${属性名}---
(2)param paramValues
request.getParameter(“参数名”);
${param.参数名}
(3)cookie、header、headerValues、initParam、pageContext
最后一个问题:
(4)与作用范围有关的EL隐含对象包含有:pageScope、requestScope、sessionScope和applicationScope
(5)与输入有关的隐含对象有两个,即param和paramValues,它们是EL中比较特别的隐含对象。
禁用EL:
<%@ page isELIgnored=”false|true” %> 判断EL表达式是否要被忽略