EL表达式

简述

  在MVC开发模式下,JSP主要负责view模块的开发,即主要负责展示数据,很少在里面写java代码。但不可避免地要写java代码的话,我们可以用EL表达式来简化jsp页面上java代码的书写。

EL表达式

  EL是Expression language的缩写,用于简化jsp页面中java代码的书写。

  语法:${表达式}

  jsp是默认支持EL表达式的,如果要忽略EL表达式,那么就要配置jsp中page的isELIgnored="true",或者在EL表达式前面加个/

  EL表达式可以用来运算、获取值、隐式对象。

运算

  EL表达式支持常见的运算符

算数运算符 + - * /(div) %(mod)
比较运算符  > < >= <= == !=
逻辑运算符 &&(and) ||(or) !(not)

  除此之外EL表达式还支持特殊的运算符——empty运算符

  功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0
     ${empty list}:判断字符串、集合、数组对象是否为null或者长度为0
             ${not empty str}:表示判断字符串、集合、数组对象是否不为null 并且 长度>0

获取值

  EL获取值的前提是EL表达式只能从域对象中获取值。

  语法${域名称.键名} :从指定域中获取指定值

pageScope pageContext
requestScope request
sessionScope  session
applicationScope  application(ServletContext)

  例如我们在request域中存储了name = 张三,我们就可以通过${requestScope.name}获取张三这个值

  除此之外我们可以直接写${键名},表示依次从最小的域中查找是否有该键对应的值,直到找到为止。

  如果获取的键值是对象,则可以使用${域名.键名.属性值}获取该对象的属性,属性值是get方法去掉get并把首字母变为小写获取的

  如果值为list集合的,则用${域名.键名[索引]}来获取,如果list集合里存的是对象则可以.属性名获取该索引下的对象的属性

  如果值为map集合,则用${域名.键名.key}获取该map对应key的值

隐式对象

  EL表达式的隐式对象类似JSP的内置对象,一共有11个,最常用的是pageContext获取request对象然后获取虚拟目录

  ${pageContext.request.contextPath}:动态获取虚拟目录

posted @ 2021-06-19 18:24  艾尔夏尔-Layton  阅读(93)  评论(0编辑  收藏  举报