EL 表达式
EL 全名为 Expression Language
EL 语法很简单, 它最大的特点就是使用上很方便. 接下来介绍 EL 主要的语法结构:
${sessionScope.user.sex}
所有 EL 都是以 ${为起始, 以} 为结尾的. 上述 EL 范例的意思是: 从 Session 的范围中, 取得
用户的性别. 假若依照之前 JSP Scriptlet 的写法如下:
- User user =(User)session.getAttribute("user");
- String sex =user.getSex( );
两者相比较之下, 可以发现 EL 的语法比传统 JSP Scriptlet 更为方便, 简洁.
二,[] 和. 运算符
EL 提供 "." 和 "[ ]" 两种运算符来存取数据, 当要存取的属性名称中包含一些特殊字符, 如 . 或 - 等并非字母或数字的符号, 就一定要使用 "[ ]".
比如:${ user. My-Name} 应当改为 ${user["My-Name"]};
如果要动态取值时, 就可以用 "[ ]" 来做, 而 "." 无法做到动态取值. 如:${sessionScope.user[data]} 中 data 是一个变量
属
属性范围在 EL 中的名称 | |
Page | PageScope |
Request | RequestScope |
Session | SessionScope |
Application | ApplicationScope |
JSP 表达式语言定义可在表达式中使用的以下文字:
文字 | 文字的值 |
Boolean | true 和 false |
Integer | 与 Java 类似。可以包含任何正数或负数,例如 24、-45、567 |
Floating Point | 与 Java 类似。可以包含任何正的或负的浮点数,例如 -1.8E-45、4.567 |
String | 任何由单引号或双引号限定的字符串。对于单引号、双引号和反斜杠,使用反斜杠字符作为转义序列。必须注意,如果在字符串两端使用双引号,则单引号不需要转义。 |
Null | null |
3. 执行运算
1) 语法:${运算表达式}
2) 常见运算符:==(eq) !=(ne) <(lt) >(gt) <=(le) >=(ge) &&(and) ||(or) !(not)
3) 判断是否为空:${empty name }
4) 三目运算符:${name == null?"null":name }
4. 获取常用对象
1) 语法:${隐式对象名称}
2) 隐式对象表
对象名 用法 等价 JSP 代码或作用
- param ${
- param.name
- } request.getParameter(name)
- paramValues ${
- paramValues.name
- } request.getParameterValues(name)// 返回一个字符串数组
- header ${
- header.name
- } request.getHeader(name)
- headerValues ${
- headerValues.name
- } request.getHeaderValues(name)
- cookie ${
- cookie.name.value
- } request.getCookie()
- initParam ${
- initParam.name
- } ServletContext.getInitparameter(name)
pageContext ${pageContext.request.contextPath} 获取 web 应用名
pageContext ${pageContext.request.sessionid} 获取 sessionId
pageContext ${pageContext.request.remoteAddr} 获取主机名
来源: http://www.bubuko.com/infodetail-3028657.html