EL表达式
Expression Langusge – 表达式语言
代替JSP页面中数据访问是的复杂编码,可以非常便捷的从域对象(page、request、session、application)中取出保存的数据。EL就相当于在简化getAttribute方法
//使用方式
${变量名}
//变量名就是setAttribute对应的key值
举例
1.新建el.jsp文件
在文件内存入数据,并跳转至新界面
2.新建el2.jsp,取出数据并输出
3.编译运行,查看效果
可以看到,两者都正常输出,但显然EL表达式更简单
1.EL表达式对于四种域对象的默认查找顺序
page>request>session>application
举例1
1.在el.jsp文件中分别创建4中对象,并传入数据
编译运行,查看结果
只输出了page
2.把page注释
编译运行
只输出request
由上可知,EL表达式的查找顺序就是page>request>session>application,如果有page,就输出,没有再找request,等等
2.指定作用域进行查找
pageContext: ${pageScope.name}
request: ${requestScope.name}
session: ${sessionScope.name}
application: ${applicationScope.name}
1.在el.jsp中指定查找session对象的数据并进行输出
编译运行
EL表达式修改数据(实际开发中一般不用)
1.新建一个java类
public class User {
private String name;
private int age;
private double score;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setScore(double score) {
this.score = score;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public double getScore() {
return score;
}
//构造函数
public User(String name, int age, double score){
this.name = name;
this.age = age;
this.score = score;
}
@Override
public String toString() {
return "User{" + "name=" + name + " age=" + age + " score=" + score + "}";
}
}
2.在el.jsp中new对象并传入参数
编译运行
可以看到,可以通过EL表达式输出值,也可以通过EL表达式修改值。