2020-09-08

EL表达式的基本使用介绍

EL表达式的基本语法:
EL表达式的语法很简单,它以 $ { 开头,以“}”结束,中间为合法的表达式。如:${expression}
如果要在JSP网页上显示 ${}符号,则在前面添加\。

*禁用EL表达式方法:

(1)在${}前面添加“\”,此语法适合只禁用界面的一个或几个EL表达式的情况
(2)在page指令上设置为:<%@ page isELgnored = “true” %>,此时禁用一个JSP页面上的EL表达式
(3)在web.xml文件中配置元素*

<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>

EL表达式也有其保留的关键字。

通过EL表达式访问数据,一般是通过EL提供的“[]”和“.”运算符可以访问数据,通常情况下这两个运算符都是等价的,可以相互替换。

例如:
$ {user.id}/${user[id]}
但也不是所有情况下都可以替换的,例如当对象的属性名包含一些特殊的符号,或者是获取数组、List集合中的数据时,只能用“[]”。

例如:
数组中只能用“[]”${book[0]}

<%
      String[] arr = {"JAVA","PHP","PYTHON"};
      request.setAttribute("book",arr);
    %>
    <%
      String[] arrL = (String[]) request.getAttribute("book");
      for (int i = 0; i <arrL.length; i++) {
        request.setAttribute("no",i);
        %>
        ${no}:${book[no]}<br>
    <%}%>

List集合:

<%
List<String> list = new ArrayList();
list.add(“小强”);
list.add(“小明”);
list.add(“小文”);
session.setAttribute(“lists”,list);
%>
<%
List<String> list1 = (List<String>)session.getAttribute(“lists”);
for(int i = 0;i<list1.size();i++)
{
request.setAttribute(“no”,i);
%>
${no}:${lists[no]}<br>
<%}%>

EL表达式判断对象是否为空
(1)${empty expression}

(2)${not empty expression}

EL表达式的算术运算符以及逻辑运算符都是与java一致的。

EL的隐含对象:

为了能够获得Web应用程序中的相关数据,El提供了11个隐含对象,这些隐含对象可以分为页面上下文对象、访问作用域范围的隐含对象和访问环境信息的隐含对象3种。

(1)页面上下文对象:

页面上下文对象为pageContext,用于访问JSP的内置对象(但不能获取application、config和pageContext对象)和ServletContext。获取到这些对象后就可以获取他们的属性值。

<1>获取request对象
p a g e C o n t e x t . r e q u e s t , 获 取 到 r e q u e s t 对 象 后 就 可 以 进 行 该 对 象 与 客 户 端 相 关 的 信 息 。 如 : 获 取 客 户 端 的 端 口 号 : {pageContext.request},获取到request对象后就可以进行该对象与客户端相关的信息。如: 获取客户端的端口号: pageContext.request,request{pageContext.request.serverPort}

<2>获取response对象:
${pageContext.response},获取response对象,可以进行该对象与响应相关的信息,如:
${pageContext.response.contentType}

<3>获取out对象
${pageContext.out},可以通过此对象获取输出相关的信息,如:输出缓冲区大小
${pageContext.out.bufferSize}

<4>获取session对象
p a g e C o n t e x t . s e s s i o n , 可 以 通 过 获 取 s e s s i o n 对 象 获 取 s e s s i o n 的 有 效 时 间 : {pageContext.session},可以通过获取session对象获取session的有效时间: pageContext.sessionsessionsession{pageContext.session.maxInactiveInterval}

<5>获取exception对象
${pageContext.exception}

<6>获取page对象
${pageContext.page}

(2)访问作用域范围的隐含对象

在El中提供了4个用于访问作用域范围的隐含对象:pageScope、requestScope、sessionScope和applicationScope。

<1>pageScope隐含对象用于返回当前page范围内的属性值的集合,返回的是一个Mao。
例:

package com.javaweb
public class User
{
private String name;
get()set()方法......
} 

在JSP文件中编写

<jsp:useBean id = “user” scope = “page” class = “ com.javaweb.User” type = “ com.javaweb.User”>
<jsp:setProperty name = “user” property = “name” value = “名字”>
</jsp:userBean>

<body>
${pageScope.user.name} //用pageScope隐含对象返回user.name的value
</body>

<2>requestScope隐含对象,获取request范围内属性值的集合
例:

<%
Request.setAttribute(“name”,”aka”);
%>
${requestScope.name}

<3>sessionScope隐含对象,用于返回包含session范围内属性值的集合。

<%
session.setAttribute(“name”,”aka”);
%>
${sessionScope.name}

<4>applicationScope隐含对象,用于返回包含application范围内属性值的集合

<%
application.setAttribute(“name”,”aka”);
%>
${applicationScope.name}

(3)访问环境信息的隐含对象

<1>param对象,用于获取请求参数的值。
例:

<input name = “name” type = “text”>
${param.name}//获取name文本框的值

paramValues对象,用于返回多个请求参数的值
!!!在应用param和paramValue对象时,如果指定的参数不存在,返回的是空的字符串而不是null

<2>header和headerValues对象,用于获取HTTP请求的一个具体的header的值,如果header有多个情况的时候就用headerValues来获取。
${header.connection}

<3>initParam对象,用于获取Web应用初始化的值
例:
在web.xml文件中设置一个初始化参数

<context-param>
<param-name>aka</param-name>
<param-value>mr</param-value>
</context-param>

${initParam.aka}//获取aka初始化的值
<4>cookie对象,用于获取cookie对象.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值