EL表达式
EL表达式:
-
概念:Expression Language 表达式语言
-
作用:替换和简化jsp页面中Java代码的编写
-
语法:${表达式}
${3 > 4}
-
注意:
- jsp默认支持EL表达式
- 忽略单个El表达式(在$前加上反斜线)?{3 > 4}
- 忽略页面所有El表达式,配置jsp的page中的属性isELIgnored=“true”
-
使用
-
运算
- 运算符:
- 算数运算符: + - * /(div) %(mod)
- 比较运算符:> < >= <= == !=
- 逻辑运算符:&&(and) ||(or) !(not)
- 空运算符:empty(用来判断字符串、集合、数组对象是否为null或者长度是否为0 ,例:${empty list})
- 运算符:
-
获取值(EL表达式只能从域对象中获取值)
-
语法:
-
${域名称.键名称}
- 域名称
- pageScope – > pageContext
- requestScope -->request
- sessionScope --> session
- applicationScope --> application(ServletContext)
<head> <title>Title</title> <% request.setAttribute("msg","你好"); %> </head> <body> <%--获取不到数据就输出空字符串--%> ${requestScope.msg} </body>
- 域名称
-
-
${键名}:表示依次从最小的域中查找是否有该键对应的值,知道找到为止
-
获取对象:List集合、Map集合的值
-
对象:${域名称.键名.属性名};本质是去调用set和get方法
<body> <% User user = new User(); user.setAge("13"); user.setName("张三"); request.setAttribute("user",user); %> <%--获取对象中的值,本质调用getter方法,如果没有该方法就会报错--%> ${requestScope.user.name} ${requestScope.user.age} </body>
-
List集合:${域名称.键名[索引]}
<% List list = new ArrayList(); list.add("aa"); list.add("bb"); list.add("cc"); request.setAttribute("list",list); %> <%--获取集合中的值--%> ${requestScope.list[1]}
-
Map集合: 域 名 称 . 键 名 . k e y 的 名 称 或 者 {域名称.键名.key的名称}或者 域名称.键名.key的名称或者{域名称.键名[”map集合中的键“]}
<% Map map = new HashMap(); map.put("name","张三"); map.put("age","15"); request.setAttribute("map",map); %> ${requestScope.map.name}
-
-
3.隐式对象:el表达式中有11个隐式对象
pageContent:可以获取jsp的其他8个内置对象
${pageContext.request.contextPath}:动态获取虚拟目录
-