EL表达式
因为热爱,所以拼搏。 --RuiDer
EL表达式
EL:Expression Language 表达式语言,是在JSP 2.0引入的一个新特性,用于JSP文件中数据访问。它的作用相当于替代了JSP中
的<%= %>和<% %>Java程序片段,使用更方便,更简单。
主要作用
1.数据访问
2.替代<%= %>和<% %>Java程序片段
基本语法
形如 ${var}
例如:
1.${param.username}等同于 <%=request.getParameter("username")%>
都用于在页面输出请求参数username
2.Java类User对象user的属性name的访问
${sessionScope.user.name}或者${(sessionScope.user)["name"]}
<%=sessionContext.getparameter("username").name%>
3.EL表达式的运算符
${2-1},${2*5},支持加减乘除取模运算符
${12<=5},支持关系运算符
${!(12>3)},${16>3&&17<2},支持逻辑运算符
说明:EL表达式不是一门通用于开发的语言,它只是一个重要的特性,简洁了JSP数据访问。
特殊表达式 :
1.${empty var}表示var是否为空,如果为空,输出true,否则,输出false
说明:
-var不存在,返回true
-var存在,但是var=null,返回true
-var属于集和对象(Set,Map,List),他们不包含元素时输出True
2.${a>b?1:2}支持条件运算符
隐含对象
EL表达式定义了是一个隐含对象,他们都是java.util.Map类型,EL表达式可以通过他们Web应用中的数据。
1.applicationScope:把Web应用范围内的属性名和属性值进行映射。
2.cookie:把客户请求的cookie名和cookie对象进行映射
3.header:把Http请求头部的项目名和所有匹配的项目值进行映射。比如${header.host}等同于<%=request.getHeader("host")%>
4.headerValues:把请求头部的项目名和项目值的数组进行映射。
5.initParam:把web中的初始化参数名和参数值进行映射。
6.pageScope:把页面范围内的属性名和属性值进行映射。
7.pageContext:代表javax.servlet.jsp.PageContext对象
8.param:把请求参数名和参数值进行映射。
9.paramValues:把请求参数名和请求参数值的数组映射。
10.requestScope:请求范围内的属性名和属性值的映射。
11.sessionScope:会话范围内的属性名和属性值进行映射。
注意:对于含有 "-"字符的属性名或者参数名,必须采用"[]"来访问数据。比如:
${user["user-name"]}而不是${user.user-name}
重头戏
EL表达式访问的数据是特定范围内的,不是任何命名变量,比如web应用范围内的,会话范围内,page范围内等特定范围内的数据。
比如:
<%
String name="tom";
%>
${name}
访问上面命名的name变量是错误的,如果在上面所述的特定范围内没有name属性名或者参数名,返回结果为空。
作者寄语
做过项目的都知道,EL表达式会在项目中普遍使用,尤其在前后端整合,相当便捷。这是我的博客