EL表达式
全称Expression Language,用来替代JSP的脚本表达式向浏览器输出数据和执行一些基本的运算。
一、JSP最佳实践
不出现一行java代码,因为java代码回使得整个页面结构非常混乱和难以维护。
- Servlet:负责产生数据与接收用户的请求数据;
- Jsp:负责显示数据;
- EL:输出数据
二、EL表达式格式
- ${标识符},相当于:
<%=[ pageContext|request|session|application].getAttribute(属性名) %>
- 如果是${“xxx”},将会原样输入xxx。
三、查找原理
底层利用了pageContext.findAttribute(属性值)
可以从jsp中的四大域中搜索对象,找到则返回该对象,找不到则返回空字符串。
四、获取对象的属性
- 格式:属性.对象属性
- 注意:EL表达式判断对象是否有属性,完全是判断是否有对应的get方法,而无论其是否定义了成员变量。
四、内置对象
- 指可直接使用的对象
- 分别是:pageContext、pageScope、requestScope、sessionScope、applicationScope
- 获取request对象再获取到当前工程名
${pageContext.request.contextPath}
五、运算符
1.获取属性
提供”.”和”[]”两种方式获取属性;
${user.name}
${user["name"]}
2.算术运算符
功能 | 运算符 |
---|---|
加 | + |
减 | - |
乘 | * |
除 | /或div |
取余 | %或mod |
3.关系运算符
功能 | 运算符 |
---|---|
等于 | ==或eq |
不等于 | !=或ne |
小于 | <或lt |
小于等于 | <=或le |
大于 |
和gt |
大于等于 |
=或ge |
4.逻辑运算符
功能 | 运算符 |
---|---|
与 | \&\&或and |
或 | ||或or |
非 | !或not |
5.empty运算符
检查对象是否为null或”“
${empty user}
6.二元表达式
${user!=null?user.name:""}//注意大括号