1.EL是JSP语言内置的表达式语言,其可以使得JSP页面变得整洁
EL的基本语法
EL代替的是<%= %>
输出,EL只能做输出
2.EL表达式来读取四大域
- ${xxx},全域查找名为xxx的属性,如果不存在,则输出空字符串,而不是null(按照范围来进行查找,从最小的page开始)
- ${pageScope.xxx}
${requestScope.xxx}
${sessionScope.xxx}
${applicationScope.xxx},指定域获取属性
3.EL表达式可以输出的东西都在11个内置对象中:
其中10个是Map,只有pageContext为pageContext类型 - pageScope
- requestScope
- sessionScope
- applicationScope
- param:对应参数,它是一个Map,其中key参数名,其中value是参数值,适合单值的参数
- paramValues:对应参数,它是一个Map,其中key参数名,value是多个参数值,适合于多值的参数
- header:对应请求头,它是一个Map,其中key表示头名称,value是单个头值,适合于单值的请求头
- headerValues:对应请求头,它是一个Map,其中key表示头名称,value是多个头值,适合于多值的请求头
- initParam;
- cookie:Map<String,cookie>类型,其中key是cookie的name,value是cookie对象,${cookie.username.value}
- pageContext:它是PageContext类型!"
${pageContext.request.contextPath}
注意:
1.EL中会自动进行类型转换。如果想通过EL输入两个字符串型数值(如number1+number2)的和,可以直接使用“+”进行连接(如${number1+number2})
2.EL可以访问JavaBean中的属性以及嵌套属性和集合对象
//javabean
//Employee.java
private String name;
private String address;
private int salary;
public String getName(){
return name;
}
public String getAddress(){
return address;
}
public int getSalary(){
return salary;
}
public void setName(String name){
this.name = name;
}
public void setAddress(String address){
this.address = address;
}
public void setSalary(int salary){
this.salary = salary;
}
<jsp:useBean id = "emp" class = "com.emp"></jsp:useBean>
<jsp:setProperty property = 'name' name = 'emp' value = "张三"></jsp:setProperty>
${emp.name} //输出结果为张三
3.在EL中可以访问JSP的作用域(request,session,application,page)