JavaEE学习笔记之Servlet/JSP—EL表达式

EL表达式(Expression Language表达式语言)

主要作用是产生无脚本的JSP页面,即产生无Java代码的JSP页面。

1.在页面中输出内如:

${express }

获取request的参数:

${param.username }

JavaBean也可以使用:

${bean.attribute }

从Session中获取数据:

${sessionScope.username }

2、操作符

JSP 表达式语言提供以下操作符,其中大部分是 Java 中常用的操作符:

JavaEE学习笔记之Servlet/JSP—EL表达式_第1张图片

例:

${1 + 2 * 3 } 结果为7

特殊运算符:

EL提供了.和[]两种运算符存取数据。

${sessionScope.user.username }
${sessionScope.user["username"] }

必须使用特殊运算符的情况:

① 当要存取的属性名称包含特殊字符,如.或-时,就只能使用[],例如:
${user["user-name"] }
② 当需要动态取值时,使用[]
${user["attributeName"] }

3、隐式对象

JSP 表达式语言定义了一组隐式对象,其中许多对象在 JSP scriplet 和表达式中可用:

这里写图片描述

JavaEE学习笔记之Servlet/JSP—EL表达式_第2张图片

除了上述两种类型的隐式对象之外,还有些对象允许访问多种范围的变量,如 Web 上下文、会话、请求、页面:

JavaEE学习笔记之Servlet/JSP—EL表达式_第3张图片

注意:

1、注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性。例如:即使现有的 pageContext 属性包含某些其他值,${pageContext} 也返回 PageContext 对象。

2、 注意 <%@ page isELIgnored=”true” %> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。

4.EL表达式查找顺序:

${username } 默认从Page范围找,如果找不到再从Request,Session,Application范围找,最后如果都找不到则返回null。

例子:

1、例如,

< %=request. getParameter(“username”)% > 等价于 ${ param. username }

2、例如,但是下面的那句EL语言可以完成如果得到一个username为空,则不显示null,而是不显示值。

<%=user.getAddr( ) %> 等价于 ${user.addr}。

3、例如:

<%=request.getAttribute(“userlist”) %> 等价于$ { requestScope.userlist }

4、例如,原理如上例3。

${requestScope.userlist} 1

${sessionScope.userlist} 2

${applicationScope.userlist} 3

${pageScope.userlist} 4

${uselist} 含义:执行顺序为4 1 2 3。

“.”后面的只是一个字符串,并不是真正的内置对象,不能调用对象。

4、例如,

<%=user.getAddr( ) %> 等价于 ${user.addr}

第一句前面的user,为一个变量。

第二句后面user,必须为在某一个范围里的属性。

你可能感兴趣的:(JavaEE)