- JSP EL的作用是进一步减少JSP中Java代码的数量,简化了存取变量、表达式运算和读取内置对象
基本用法
使用 S{...}, ...部分为操作的变量或表达式
${ } 不允许镶嵌
JSP EL运算符
-
算术型
+、-、*、/、%
-
逻辑型
&&、||、!
-
关系型
==、!=、<=、>+、<、>
-
条件型
a ? b : c
-
空
empty
读取JavaBeans对象:
可以取代 <jsp:getProperty>,直接使用 . 运算符
-
示例
<jsp:useBean id="person" class="com.util.Person"/> <jsp:setProperty name="person" property="firstname" value="Chen"/> <jsp:setProperty name="person" property="lastname" value="Bo"/> Welcome! ${person.lastname} ${person.firstname}
读取数组或容器
使用 []
-
数组, List
$numbers[1]
-
容器(Map ... )
$address["ChenBo"]
JSP EL 内置对象
一共11个内置对象
-
作用范围相关对象: pageScope, requestScope, sessionScope, applicationScope
它们的作用是读取JSP内置对象 pageContext, request, session, application的setAttribute()方法所设定的对象的值
示例
${sessionScope.username} <==> <%=session.getAttribute("username")
-
param, paramValue
作用是读取请求的参数值
${param.username} <==> <%=request.getParameter("username")> paramValues <==> request.getParameterValues()方法,用于获得所有的参数名称和对应的值
-
header, headerValues
作用是读取请求的头数据
headerValues <==> request.getHeaders()方法,用于取得所有的头信息
-
cookie
${cookie.username.value}用来取得属性值
${cookie.username.key}用来取得cookie的key值
-
initParam
用来获取 web.xml中的参数值
${initParam.repeat} <==> servletContext.getInitParameter("repeat");
-
pageContext
用来获取 request, response, session, application 等对象
${pageContext.session} <==> javax.servlet.ServletContext servletContext.getSession();