EL(Expression Language)表达式语言
用在jsp页面中,为了使jsp页面更简单。
一、主要功能:
- 访问存储对象
- 对javabean的简化访问
- 对集合的简化访问
- 简单运算符
- 条件输出
二、语法结构
${expression}
EL只能用来提取数据
request.setAttribute("username","zhangsan");
提取方式:
${username}
三、EL访问作用域
一次从PageContext、HttpServletRequest、HttpSession、ServletContext中取对应属性的属性值,如果expression没有对应属性,返回空。但是不会报出nullpointexception。如果在这些这些对象中具有同名的属性,那么,去的是考钱的对象的属性值。
注意:PageContext:只能在本页面中提取,在其他页面中作用域失效
Request:可以在其它页面中提取,但是作用域很小
Session:只要浏览器不关闭都可以提取到
Application:只要服务器不关闭都额可以提取到。
四、对JavaBean的访问
El表达式可以直接访问作用域内JavaBean中的属性,但是不能访问JavaBean的方法。
<jsp:useBean id="demo" class="com.sun..demo" scope="request"></jsp:useBean>
<jsp:setProperty name=“demo”roperty=“name” value=“张三"/>
提取值
${demo.name}
五、对集合的访问
Emp e = new Emp();
e.setUsername("zhangsan");
e.setPasswd("123456");
request.setAttribute("emp",e);
List list = new ArrayList();
list.add(e);
request.setAttribute("list",list);
提取方式:
${list[0]["username"]}或者${list[0].username}
注意:当提取的属性名中含有一些特殊符号的时候和动态取值的时候必须使用第一种情况
五、隐含对象
通过隐含的对象,我们可以访问程序中的数据,例如,上一个页面中传递过来的参数值(parameter),或者从cookie中获得的值等。
1、${param.username}:用于获取从form传递过来名为username的参数值,相当于request.getParameter("username");
2、${paramValues.username[1]}相当于request.getParameterValues("username");
六、EL运算符
1、在EL中使用的算术运算符、关系运算符、逻辑运算符、括号和我们通常使用的编程语言都是一样的。
2、Empty运算符:对于数据验证非常有用。使用empty操作符来决定对象、集合或字符串变量是否为空或null。例如:${empty param.username} 用于验证传递过来的username是否为null。如${param.firstname == null}。
3、条件运算符:${A?B:C} 意思是:如果条件A为true,那么返回表达式B,否则返回表达式C。例如:${1>3?”aaa”:”bbbb”}
七、自动类型转化
程序所处理的数据类型有时候会不完全匹配,EL提供了完整的自动数据类型的转换。
${param.age+20}这个表达式首先将获得的参数age的值转化成int类型的数据,然后,再和20进行相加运算。(前提是param.age提取的值可以转换成整数)
应用:request.setAttribute("maxvalue","9");
request.setAttribute("minvalue","6");
${maxvalue>8 && !(minvalue<7)}