EL
一:什么是EL表达式?
EL表达式:expression language
使用EL目的:简化jsp中的Java代码开发
注:EL不是一种开发语言,是jsp中获取数据的一种规范。
二:EL的简单应用
1:获取数据
首先创建一个类
class Person{
private int age;
private String name;
public Person(int age,String name){
this.age = age;
this.name = name;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
}
在jsp文件当中:
<%
Person p = new Person();
request.setAttribute("person",p);
%>
//以下两种获取方式的结果相同
//第一种获取方式:
${person}
${person.name}
//第二种获取方式:
${person}
${person["name"]}
注:若对象中的某个成员变量是一个对象或者数组,获取方式不变,如下例:
${person.成员变量对象.成员变量属性}
${person.成员变量数组[下标]}
2:运算符
${1 + 1}
${2 - 1}
${2 * 3}
${3 / 2}
${5 % 3}
//运算结果为:
2
1
6
1
2
3:操作数组
${数组名[下标]}
4:操作对象
1)与 1.获取对象同
2)操作jsp内置对象
EL对象/作用域 | 对应关系 |
---|---|
pageContext | 当前的pageContext对象 |
pageScope | 对应page作用域 |
requestScope | 对应request作用域 |
sessionScope | 对应session作用域 |
applicationScope | 对应application作用域 |
param | 对应request.getParameter() |
paraValues | 对应request.getParameters() |
header | 对应request.getHeader () |
headerValues | 对应request.getHeaderValues() |
cookie | 对应request.getCookies() |
initParam | 对应ServletContext.getinitParameter() |
例:
<%
request.setAttribute("info","this is request");
session.setAttribute("info","this is session");
application.setAttribute("info","this is application");
Cookie cookie = new Cookie("name","value");
cookie.setMaxAge(30*60);
response.addCookie(cookie);
%>
${info}
<hr>
${requestScope.info}<br>
${sessionScope.info}<br>
${applicationScope.info}<br>
${cookie.name.info}
//运行结果为:
this is request
this is request
this is session
this is application
value
注:${info}最先会在request找值,若request中不存在值,则会按session、application的顺序去寻找值
5:操作集合
以前面的Person类创建两个对象p1,p2
<%
List<Person> list = new ArrayList<Person>();
list.add(p1);
list.add(p2);
Map<String,Person> map = new HashMap<String,Person>();
map.put("1",p1);
map.put("2",p2);
request.setAttribute("list",list);
request.setAttribute("map",map);
%>
//调用方式为:
${list}
${list[1]}
${list[1].name}
${map}
${map["1"]}
${map["1"].name}