EL表达式和JSTL
第七章 EL表达式和JSTL
数据和功能重复使用,便于移植,Sun公司提出“JavaBean技术”,使用JavaBean技术可以对这些数据和功能进行封装,做到一次编写,到处运行。
为了降低JSP页面的复杂度,增强代码重用性,Sun公司制定了一套标准标签库JSTL,同时为了获取Servlet域对象中存储的数据,JSP2.0规范里提供EL表达式。
7.1 初识JavaBean
概述
重复使用的软件组件,本质上就是Java类。
- 必须具有一个 公共的无参构造方法。
- 提供公共的get set方法
BeanUtils工具
方法声明 | 功能描述 |
---|---|
static void populate(Object bean,Map<String,?extends Object> properties) | 根据指定的名称/值为相应的JavaBean属性设置值 |
static void setProperty(Object bean,String name,Object value) | 根据指定的属性值,传入的类型要求能转换成相应的属性的类型 |
static String getProperty(Object bean,String name) | 返回指定bean指定属性的值,返回值为String类型 |
7.2 EL表达式
为了获取Servlet域对象中存储的数据,代码更简洁方便
EL中标识符正斜杠
使用符号标记一些名称,如变量名、自定义函数名等,这些符号被称为标识符。EL标识符由任意大小写字母、数字和下划线组成。
- 不能那个以数字开头
- 不能是EL中的关键字
- 不能是隐式对象
- 不能包含单引号(’)、(")、(-)和 (/)等特殊字符。
EL中的关键字
and eq gt true instanceof or ne le false empty not lt ge null div mod
EL中的变量
${product}
常量
EL中的常量又称为字面量,它是不能改变的数据。
- 布尔常量
true or false - 整型常量
取值范围是Java语言定义的常量Long.MIN_VALUE 到 Long.MAX_VALUE 之间 - 浮点数常量 双精度
- 字符串常量
本身包含的单引号双引号反斜杠需要进行转义, 前面再加个反斜杠() - Null常量
Null常量用于表示变量引用的对象为空,只有一个值null
EL中的运算符
点运算符(.) 方括号运算符( [] ) 算术运算符( + - * /或div %或mod )
比较运算符
==(eq) !=(ne) <(it) >(gt) <=(le) >=(ge)
避免与JSP页面的标签产生冲突,后面四重通常用括号内的。
逻辑运算符
&&(and) ||(or) !(not)
empty运算符
判断某个对象是否为null或者" "
${empty var}
变量不存在,变量值为null, 变量为集合且不包含任何元素
条件运算符
${A?B:C}
“()”运算符
优先级
优先级 | 运算符 |
---|---|
1 | [] |
2 | () |