EL表达式
EL表达式获取不同类型数据
<%--获取基本数据类型--%>
<% pageContext.setAttribute("num",10); %>
基本数据类型${num}
<%--获取自定义对象类型--%>
<%
Student stu = new Student("张三",18);
pageContext.setAttribute("stu",stu);
%>
自定义对象:${stu}
学生姓名: ${stu.name}
<%--获取数组类型--%>
<%
String[] arr = {"hello","world"};
pageContext.setAttribute("arr",arr);
%>
数组:${arr}
0索引元素:${arr[0]}
1索引元素:${arr[1]}
<%--获取List集合--%>
<%
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
pageContext.setAttribute("list",list);
%>
List集合:${list}
0索引元素:${list[0]}
<%--获取Map集合--%>
<%
HashMap<String,Student> map = new HashMap<>();
map.put("hm01",new Student("张三",23));
map.put("hm02",new Student("李四",24));
pageContext.setAtteibute("map",map);
%>
Map集合: ${map}
第一个学生对象:${map.hm01}
第一个学生对象姓名:${map.hm01.name}
EL表达式中没有空指针异常效果
EL表达式中没有数组下标越界效果
EL表达式中没有字符串拼接效果
EL表达式运算符
<% pageContext.setAttribute("str1",null); %>
<% pageContext.setAttribute("str2",""); %>
<% pageContext.setAttribute("list",new ArrayList()); %>
${empty str1}
${empty str2}
$(empty list)
<% pageContext.setAttribute("gender","women"); %>
<input type="radio" name="gender" value="男" ${gender == "men" ? "checked" : ""}> 男
<input type="radio" name="gender" value="女" ${gender == "women" ? "checked" : ""}> 女
使用细节
EL表达式能够获取四大域对象的数据,根据名称从小到大在域对象中查找。
还可以获取JSP其他8个隐式对象,并调用对象中的方法
<%= request.getContextPath() %>
${pageContext.request.contextPath}