在JSP中访问模型对象是通过EL表达式的语法来表达。所有EL表达式的格式都是以“
${}”表示。例如,${userinfo}代表获取变量userinfo的值。
当EL表达式中的变量不给定范围时,则默认在page范围查找,然后依次在request、session、application范围查找。也可以用范围作为前缀表示属于哪个范围的变量,例如:${pageScope. userinfo}表示访问page范围中的userinfo变量。
- EL表达式取值:就是通过调用get方法实现。
${对象名(如user对象).属性名(Model必须有get方法)}
1、[ ]与.运算符
- EL 提供“.“和“[ ]“两种运算符来存取数据。
${user.name}相当于${user["name"]}属性名称中包含一些特殊字符,就要使用[""]。动态取值时,就要使用“[ ]“。${sessionScope.user[data]}中data 是一个变量
2、属性范围
| 属性范围 | 在EL中的名称 | 定义 |
|---|---|---|
| Page | PageScope | 将页面范围的变量名称映射到其值。${PageScope. xxx} |
| Request | RequestScope | 将请求范围的变量名称映射到其值。${RequestScope. xxx} |
| Session | SessionScope | 将会话范围的变量名称映射到其值。${sessionScope. xxx} |
| Application | ApplicationScope | 将应用程序范围的变量名称映射到其值。${ApplicationScope. xxx} |
- EL取值会依序从Page、Request、Session、Application范围查找。途中找到,不再继续找下去。
- cookie:cookie 中有名称为name的值,EL取值为
${cookie.name }
3、pageContext
| 作用 | JSP表达式 | EL的写法 |
|---|---|---|
| 当前工程路径 | <%=request.getContextPath() %> | ${pageContext.request.contextPath} |
| 请求资源路径 | <%=request.getContextURL() %> | ${pageContext.request.contextURL} |
| 访问者的IP | <%=request.getRemoteAddr() %> | ${pageContext.request.remoteAddr} |
| 当前会话的ID | <%=request.getSession().getId() %> | ${pageContext.request.session.id} |
4、操作符
| 术语 | 定义 |
|---|---|
| 算术型 | +、-(二元)、*、/、div、%、mod、-(一元) |
| 逻辑型 | and、&&、or、||、!、not |
| 关系型 | ==、eq、!=、ne、<、lt、>、gt、<=、le、>=、ge |
| 空 | empty 空操作符是前缀操作,可用于确定值是否为空 |
| 条件型 | A ?B :C。根据 A 赋值的结果来赋值 B 或 C |
5、特别强调
- 注意
<%@ page isELIgnored="true" %>表示是否禁用EL语言。
TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。- 全局禁用EL表达式,在web.xml中进行如下配置:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
6、实例
2101

被折叠的 条评论
为什么被折叠?



