1.EL 语法格式:所有EL都是以${为起始、以}为结尾的。
El
${sessionScope.user.sex}
JSP
User user =(User)session.getAttribute("user");String sex =user.getSex( );
解释: 从Session的范围中,取得用户的性别。
2.点与中括号运算符( [ ] or . )
${sessionScope.user.sex}等于${sessionScope.user["sex"]}OR${sessionScope.user['sex']} 单引号与双引号一样
混淆:当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ],
${user["My-Name"] }
例如:${user.My-Name } 这是错误写法
EL变量 page<Request<Session<Application
EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
EL表达式会优化,页面上显示空白,而不是打印输出NULL。
属性范围(jstl名称) | EL中的名称 | 范例 | 说明 |
Page | PageScope | ${pageScope.username} | 取出Page范围的username变量 |
Request | RequestScope | ${requestScope.username} | 取出Request范围的username变量 |
Session | SessionScope | ${sessionScope.username} | 取出Session范围的username变量 |
Application | ApplicationScope | ${applicationScope.username} | 取出Application范围的username变量 |
El隐式对象
隐含对象 |
类型 |
说明 |
PageContext |
javax.servlet.ServletContext |
表示此JSP的PageContext |
PageScope |
java.util.Map |
取得Page范围的属性名称所对应的值 |
RequestScope |
java.util.Map |
取得Request范围的属性名称所对应的值 |
sessionScope |
java.util.Map |
取得Session范围的属性名称所对应的值 |
applicationScope |
java.util.Map |
取得Application范围的属性名称所对应的值 |
param |
java.util.Map |
如同ServletRequest.getParameter(String name)。回传String类型的值 |
paramValues |
java.util.Map |
如同ServletRequest.getParameterValues(String name)。回传String[]类型的值 |
header |
java.util.Map |
如同ServletRequest.getHeader(String name)。回传String类型的值 |
headerValues |
java.util.Map |
如同ServletRequest.getHeaders(String name)。回传String[]类型的值 |
cookie |
java.util.Map |
如同HttpServletRequest.getCookies() |
initParam |
java.util.Map |
如同ServletContext.getInitParameter(String name)。回传String类型的值 |
EL算术运算 关系运算 逻辑运算 与java 相同
关系运算
关系运算符 |
说明 |
范例 |
结果 |
== 或 eq |
等于 |
${5==5}或${5eq5} |
true |
!= 或 ne |
不等于 |
${5!=5}或${5ne5} |
false |
< 或 lt |
小于 |
${3<5}或${3lt5} |
true |
> 或 gt |
大于 |
${3>5}或{3gt5} |
false |
<= 或 le |
小于等于 |
${3<=5}或${3le5} |
true |
>= 或 ge |
大于等于 |
5}或${3ge5} |
false |
逻辑运算符
逻辑运算符 |
范例 |
结果 |
&&或and |
交集${A && B}或${A and B} |
true/false |
||或or |
并集${A || B}或${A or B} |
true/false |
!或not |
非${! A }或${not A} |
true/false |
Empty 运算符Empty 运算符主要用来判断值是否为空(NULL,空字符串,空集合)