简介
EL即Expression Language(表达式语言),EL的语法:${ EL exprission }、${ bean.name } 或 ${ bean['name'] },说白了,EL是用来显示数据的,功能跟<%=表达式%>一样,使用EL不需要引入任何jar包,只需要jsp/servlet容器实现J2EE1.4/Servlet2.4、JSP2.0规范就可以了。
使用
EL表达式的使用分为两种形式:
一.不指定搜索范围:${hello}
二.指定搜索范围:${requestScope.hello}
不指定搜索范围,默认的搜索顺序依次是page,request,session,application。若在搜索的途中找到了此变量,则直接返回,不再继续查找;若没有找到,则返回null。
指定搜索范围,需要使用el的内置对象进行指定,el的内置对象包括pageScope(表示页面范围的变量),requestScope(表示请求范围的变量),sessionScope(表示会话范围的变量),applicationScope(表示应用范围的变量)。
建议使用指定范围搜索,这样搜索会快些。
EL表达式中还可以使用[]和.运算符,例如
${user.username} //取得user实体中username属性,和使用具体的实体方式一样
${map.k1 } //取得map中的key值
${strArray[1] } //取得字符串数组,区分大小写,数组不加索引,取到的是一个对象
${users[5].username } //对象数组
${userList[6].username } // list
EL隐含对象
1)与输入有关的隐含对象
Param和paramValues,使用方式:
request.getParameter(String name)
request.getParameterValues(String name)
EL中使用param和paramValues两者来取得数据。
${param.name}
${paramValues.name}
2)其他隐含对象
${cookie.userCountry} //cookie
${header["User-Agent"]} //取得用户浏览器的版本, header 储存用户浏览器和服务端用来沟通的数据.。headerValues取得同一标头名称拥有不同的值。
${initParam.userid} //取得设定web站点的环境参数
//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 是否为新的
${pageContext.session.id} //取得session 的ID
${pageContext.servletContext.serverInfo} //取得主机端的服务信息
EL表达式对运算符的支持
1.算术运算符:+、-、*或$、/或div、%或mod
2.关系运算符:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
3.逻辑运算符:&&或and、||或or、!或not
4.其它运算符:Empty运算符、条件运算符、()运算符
例如:
${1+1 }
${empty v1 } //empty:为空返回true,不为空,返回false
EL表达式的使用可以使JSP写起来更加简单;可用在所有的HTML和JSP标签中,代替JSP页面中复杂的Java代码。