EL表达式
EL表达式(Expression Language)
语法:${expression}
用处:获取页面表单提交的参数
进行数学与逻辑运算计算出结果
获取属性中的对象
获取JavaBean的属性值
操作对象:Scriptlet:<%=((MyBean)request.getAttribute("myBean")).getName() %>
EL:${requestScope.myBean.name} 或 ${requestScope.myBean["name"]}
内置对象:requestScope:从request中获取数据
pageScope:从pageContext中获取数据
sessionScope:从session中获取数据
applicationScope:从ServletContext中获取数据
注:如果不显示指定获取数据所在的范围,如${myBean.name},默认从pageScope开始寻找,经过requestScope,sessionScope最后到applicationScope。若在过程中找到myBean则返回该对象,否则返回null。
param:对应request.getParameter(String name)方法
paramValues:对应request.getParameterValues(String name)方法
cookie:如果cookie中有一个名称为user的值,可以用${cookie.user}访问
header
headerValues
initParam
pageContext
pageContext:${pageContext.request.queryString} 取得请求的参数字符串
${pageContext.request.requestURL} 取得请求的URL,但不包括请求参数字符串
${pageContext.request.contextPath} 服务的web application的名称
${pageContext.request.method} 取得HTTP的方法(GET,POST)
${pageContext.request.protocol} 取得使用的协议(HTTP/1.1,HTTP/1.0)
${pageContext.request.remoteUser} 取得用户名称
${pageContext.request.remoteAddr} 取得用户IP地址
${pageContext.session.new} 判断session是否为新的,新的session为刚由server参数而client尚未使用
${pageContext.session.id} 取得session的ID
${pageContext.servletContext.serverInfo} 取得主机端服务信息
EL表达式的数学和逻辑运算

.和[ ]
等价:${sessionScope.user.sex}等价于${sessionScope.user["sex"]}
混用:${sessionScope.shoppingCart[0].price}结果为shoppingCart中第一项物品的价格
区别:当要存取的属性名中包含一些特殊字符,如 . 或 – 等并非字母或数字的符号,就一定要使用[ ]
例如:${user.my-Name}不正确,应当改为:${user["my-Name"]}
取值参数为变量的情况
${sessionScope.user[data]}
此时,如果data是一个变量,假设data的值为"sex"时,上例等于${sessionScope.user.sex}假设data的值为"name"时,上例等于${sessionScope.user.name}而 . 无法做到动态取值的效果
运算符优先级


浙公网安备 33010602011771号