一、EL语法规则:
1、${表达式}
注意当表达式的值为null的时候,页面会什么也不输出
2、EL中的查找变量,会依次从四大作用域进行查找,范围由小到大,所以当用EL表达式访问某个变量的时候,应该指明在哪个作用域中,避免了重名问题并且提高了效率
二、EL中的.和[]操作符
1、“.” 符号用于访问对象的属性
2、“[]”也用于访问对象的属性,但是属性需要用双引号括起来
如果含有非字母或者数字的符号,必须使用[]
可以用于访问有序集合中或数组中的指定索引位置的某个元素
可以用于访问Map,例如${map["key"]}
"[]"和"."可以结合使用
三、EL中的错误机制
1、在EL中访问一个不存在的变量,则表达式输出NULL
2、在EL中访问一个不存在的对象的属性,则表达式输出空字符串,而不会抛出异常
3、在EL中访问一个存在的对象不存在的属性,会抛出异常
四、与范围有关的隐含对象
1、pageScope
2、requestScope
3、sessionScope
4、applicationScope
五、与请求参数有关的隐含对象
1、param 用于获得请求参数的单个值 相当于request.getParaneter(), 例如 param.param1 Map[String,String]
2、param Values 用于获得请求参数的一组值,例如在复选框就可以用到 Map[String,String[]]
六、其它隐含对象
pageContext 相当于jsp页面中的pageContext对象,用于获取ServletContext
header 用于获得http请求头中的单个值
header Values 用于获得http请求头中的一组值
cookie 用于获得指定的cookie
initParam 用于获得上下文初始参数,相当于application.getInitParameter(String name)
五、empty运算符的使用
${empty sessionScope.username} 首先判断sessionScope是否存在username属性,第二判断username是否为""
1、当操作数所引用的对象是null,返回true
2、当操作数是空字符串,返回true
3、当操作数是集合或者数组时,如果操作数中没有任何元素,返回true
4、当为Map对象时候,不存在任何键、该键不存在值、返回true