EL表达式
1.什么是EL表达式?
是一种在JSP页面获取数据的简单方式(只能获取数据,不能设置数据)
2.EL表达式语法
( 绑 定 名 ) 如 : (绑定名) 如: (绑定名)如:{username};
<!--数据绑定-->
<%
session.setAttribute("username","admin1");
request.setAttribute("username","admin2");
pageContext.setAttribute("username","admin3");
application.setAttribute("username","admin4");
%>
<!--用el表达式来获取绑定数据-->
${username};
${userName}
a.执行过程中容器依次从pageContext->request->session->application中查找
绑定的名称为username数据,也就是调用了getAttribute(“userName”),然后输出结果;
b.会将null转换为空字符串"";
c.如果依据绑定名找不到数据,不会报错,仍然输出"";
d.可以使用域对象pageScope,sessionScope,resquestScope,applicationScop来指定查找的范围
所以以上输出admin3,要想获得admin1,可使用域对象如:${sessionScope.username};
3.用el表达式来获取对象中的属性值
要满足bean规则:
什么是bean?
一个java类满足以下条件,就可以称为bean
1.public class
2.public 构造方法
3.implements Serializable
4.属性的set,get方法
访问bean的属性
1.自定义User类
让其满足以上bean规则
package entiy;
import java.io.Serializable;
public class User implements Serializable{
private String name;
private int age;
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
System.out.println("测试一");
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
System.out.println("测试二");
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
2.jsp页面数据获取
1.针对自定义类
<!--绑定数据-->
<%
User user=new User();
user.setName("admin");
user.setAge(20);
request.setAttribute("user",user);
%>
<!--用el表达式获取User对象中属性的值-->
${user.name};<!--获取user对象中name的值--><br>
${user.age};<!--获取user对象中age的值--><br>
${user};<!--获取user对象--><br>
2.map集合
<%
Map<String,Object> map=new HashMap<String,Object>();
map.put("page",6);
map.put("user",user);
session.setAttribute("map",map);
%>
<!--获取map中所绑定的页数和 对象的数据-->
${map.page};<br>
${map.user};<br>
${map.user.name};<br>
${map.user.age};<br>
4.EL表达式运算
el表达式可以做一些简单的运算,运算结果可以用来给jsp标签的属性赋值也可以直接输出
1.运算符:+ - * / % 例如:${“1”+“1”}; 值为2 "+"号是运算符不是拼接符。
2.关系运算: > >= <= == !=
3.逻辑运算&& || !
4.Empty运算
1.运算符
<!-- 1.运算符:+ - * / % 例如:${"1"+"1"}; 值为2 "+"号是运算符不是拼接符。-->
${"1"+"1"};
<%
request.setAttribute("k1","100");
request.setAttribute("k2","200");
String k1=(String)request.getAttribute("k1");
String k2=(String)request.getAttribute("k2");
%>
${k1+k2};
<%=k1+k2 %>
2.关系运算
<!--2.关系运算: > >= <= == !=
3.逻辑运算&& || !-->
${k1<k2 && k1<10}
false
3.Empty运算
<%request.setAttribute("name","ss"); %>
${empty name};<br>
${empty null};
false; true;
${k1<k2 && k1<10}
false
##### 3.Empty运算
```jsp
<%request.setAttribute("name","ss"); %>
${empty name};<br>
${empty null};
false; true;