EL表达式
语法:${key} key代表的是存在域对象中的键
el表达式一般操作的是域对象或字面量,不能操作变量。
取值范围:从小范围开始找,找到即止,如果都未找到,返回空字符串。 page、request、session、application
如果想要获取指定域范围中的值,使用pageScope、requestScope、sessionScope、applicatonScope
注:获取JavaBean中的属性时,属性需要提供get方法
<h4>EL表达式取值</h4>
获取指定名称的域对象:${uname } <br/>
获取session作用域的值:${sessionScope.uname } <br/>
获取JavaBean对象:${myUser }<br/>
获取JavaBean对象的属性:${myUser.userName } ----- ${myUser.getUserName() } <br/>
获取普通变量名(取不到):${a }<br/>
获取字面量的值:${1 }<br/>
<h4>EL使用字符串方法</h4>
获取字符串中是指定字符的下标:${uname.indexOf("a") }<br/>
字符串截取:${uname.substring(0,2) }<br/>
<h4>EL表达式判断为空 ${empty 域变量 }</h4>
判断空字符串:${empty str1 } <br/>
判断null:${empty str2 } <br/>
判断字符串:${empty str3 } <br/>
判断字符串:${str3 != null && str3 != "" } <br/>
<%
//集合
List<String> list1 = new ArrayList<>();
list1.add("aaa");
list1.add("bbb");
list1.add("ccc");
List<String> list2 = new ArrayList<>();
List<String> list3 = null;
request.setAttribute("list1", list1);
request.setAttribute("list2", list2);
request.setAttribute("list3", list3);
List<User> userList = new ArrayList<>();
userList.add(user);
request.setAttribute("userList", userList);
%>
<h4>EL操作集合</h4>
判断集合不为空:${!empty list1 } <br/>
判断集合为空:${empty list1 } -- ${empty list2 } -- ${empty list3 } <br/>
获取集合的值:${list1[0] }<br/>
获取集合中对象的属性:${userList[0].userName }<br/>
获取集合的长度:${userList.size() }<br/>
<%
Map<String,Object> map = new HashMap<>();
map.put("uname","zhansgan");
map.put("uage",18);
map.put("usex",true);
request.setAttribute("map", map);
%>
<h4>EL操作Map</h4>
判断map是否为空:${empty map }<br/>
获取map对象:${map }<br/>
获取map中指定的key对应的value:${map.uname } -- ${map["uage"] }
<%
request.setAttribute("num1", 10);
request.setAttribute("num2", 2);
request.setAttribute("aa", "aaa");
request.setAttribute("ab", "aaa");
request.setAttribute("ac", "bbb");
%>
<h4>EL运算</h4>
加法:${num1 + num2 } <br/>
减法:${num1 - num2 }<br/>
乘法:${num1 * num2 }<br/>
除法:${num1 / num2 } -- ${num1 div num2 }<br/>
大小比较:${num1 > num2 } -- ${num1 >10 } --- ${(num1+num2) <= 10 }<br/>
等值比较:${aa == ab } -- ${aa eq ac }<br/>
${(num1+num2) > 10 && aa == ab }<br/>
${(num1+num2) > 10 || aa == ab }<br/>
通过pageContext对象设置指定域范围的值:
pageContext.setAttribute("userName", "Lisa", PageContext.REQUEST_SCOPE);
String userName = (String) pageContext.getAttribute("userName", PageContext.REQUEST_SCOPE);
System.out.println(userName);