1.EL表达式
形式:${ }
作用:从一个范围里面取值或者从一个对象中取值或是向页面输出值.
(取值并显示)
-
接收客户端参数.
${param.name1 }
-
指定范围并取值
${pageScope.name2 } ${requestScope.name3 } ${sessionScope.name4 } ${applicationScope.name5 }
-
可以不指定范围再去取值
${name}
这时候会按照pageContext request session application【从小到大查找】这样一个顺序依次的去找有没有一个叫name的值存在,一旦找到了就输出出来,最终没有找到那么就什么都不输出。 -
取出一个对象中的属性值.
${requestScope.student.id} ${requestScope.student.name} ${requestScope.student.age}
或者
${student.id} ${student.name} ${student.age}
或者
${student["id"]} ${student['id']} ${student["name"]} ${student['name']} ${student["age"]} ${student['age']}
注意:${student.id}表示是要调用student对象中的getId方法,至于对象中有没有id属性对这个操作没有任何影响.所以这和id指的是对象中的property而不是attribute
如果Student类中一个方法是getAddress,返回一个Address类的对象,Address类中有一个方法getCity,这个时候我们就可以这样写去拿到city属性的值.
${student.address.city}
5.输出字符串
${"hello"}
6.输出运算结果或者boolean表达式
${1+1 }
${(1+2)*3-4+5*3 }
${u.age * 10 }
${1<3 }
//为空的话返回true
${empty "" }
${empty "hello" }
//取否 不为空的话返回true
${not empty "hello" }
${! empty "hello" }
${param.score >50 }
${param.score >60?"good":"bad" }
7.输出数组、集合中的元素
<%
String[] str = {"hello","world"};
List<String> list = new ArrayList<String>();
list.add("zhangsan");
list.add("lisi");
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("a",100);
map.put("b",200);
map.put("c",300);
request.setAttribute("str",str);
request.setAttribute("list",list);
request.setAttribute("map",map);
%>
${str[0] }<br>
${list[1] }<br>
${map["c"] }<br>
8.key的值中含有特殊符号点.
例如 request对象中有一个key值为:javax.servlet.forward.request_uri
要取值这个值必须用这种形式:
${requestScope['javax.servlet.forward.request_uri'] }