EL表达式

Posted fight139

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL表达式相关的知识,希望对你有一定的参考价值。

1. EL表达式的基本形式为:${var}。如果在jsp模板文件中使用EL表达式,那么表达式的值回直接输出到网页上。

例如:Java表达式:<%=request.getParameter("usernamae") %>
--> ${param.username} (form)
2. 使用场景:既可以直接插入到jsp文件的模板文件中,也可以作为jsp标签的属性的值。
e.g. <input type="text" name="username" value="${param.username}" />

3. 直接访问对象的属性:
e.g. ${request.user.username} <==> ${request.user[‘username‘]}

4. EL运算符:
算数运算符:
+ - * /(不是整除)%
关系运算符:
== < >..
逻辑运算符
! || &&
empty运算符
${empty var} :如果var为null,就返回TRUE
条件运算符
a?b:c

1. EL 语言中定义了11个隐含对象,他们都是java.util.Map类型,网页制作者通过他们便捷地访问web应用的特定数据。

隐含对象名 说明
application web应用范围内的属性名和属性值进行映射
cookie 客户请求中的Cookie名和Cookie对象进行映射
header 请求头部的项目名和项目值进行映射,例如:
${header.host} 等价于<%=request.getHeader("host") %?
headerValues 把Http请求头部的项目名和所有匹配你的项目值得数组进行映射,例如:
${headerValues["accept-language"]} 等价于<% request.getHeaders("accept-language") %>
initParam 把web应用的初始化参数名和参数值进行映射

pageScope 把页面范围内的属性名和属性值进行映射
param 把客户请求的参数名和参数值进行映射
paramValues 请求参数名对应参数数组

requestScope 请求返回内的属性名和属性值
sessionScope 回话的范围内的属性名和属性值的映射

分类:
(1)请求范围内的特定数据:header,headerValues,param,paramValues,cookie
${header["user-agent"]} (必须使用[]访问,因为不符合变量命名规则) <==> <%=requesst.getHeader("user-agent") %>
${cookie.username.value} <==> 调用名为username的Cookie对象的getValue()方法
与前端cookie的关系
(2)特定范围的属性值:pageScope,requestScope,sessionScope和applicationScope
${sessionScope.cart.total} 属性
${applicationScope.counter.count}

(3)pageContext,表示PageContext对象
${pageContext.request.contentPath}
${pageContext.servletContext.serverInfo} <==> <%=application.getServerInfo %>
${pageContext.request.requestURL} <==> <%=request.getRequestURL() %>
${pageContext.response.characterEncoding} <==> <%= response.getCharacterEncoding() %>

(4)表示web应用的初始化参数集合,为initParam
${initParam.driver} <==> <%=appliction.getInitParameter("driver") %>

2.命名变量

EL表达式中的变量成为命名变量,他不是jsp文件的局部变量或实例变量,而是存放在特定范围内的属性,
命名变量的名字和属性名对应。
${username} 找的是特定范围的属性(不是参数)
${user.username} 实际上找的不是User的username属性,而是调用了User的getUsername方法,返回的结果

 

以上是关于EL表达式的主要内容,如果未能解决你的问题,请参考以下文章

jquery中使用el表达式的问题,求教

EL概述和EL运算符

EL表达式总结

JSTL和EL

EL表达式

jquery与EL表达式的$冲突