EL表达式

    xiaoxiao2022-07-12  191

    1.EL简介

    EL是JSP内置的表达式语言,用以访问页面的上下文以及不同作用域中的对象 ,取得对象属性的值,或执行简单的运算或判断操作。EL在得到某个数据时,会自动进行数据类型的转换。EL表达式用于代替JSP表达式(<%= %>)在页面中做输出操作。EL表达式仅仅用来读取数据,而不能对数据进行修改。

    注意:使用EL表达式输出数据时,如果有则输出数据,如果为null则什么也不输出。

    2.EL基本语法

    EL表达式总是放在{}中,而且前边有一个$作为前缀。

    ${EL表达式}

    获取域中的对象可以直接使用对象名,如获取域中名字为user的对象

    ${user}

    获取对象的属性值可以直接通过“对象.属性名”

    ${user.name} ${user.age} 注意:这里的属性名是get和set方法对应的属性值,并不是对象中的变量名。 比如:如果获取name属性值,那么该对象中必定要存在一个getName()方法。

    获取对象的属性也可以通过“对象[“属性名”]”

    ${user[“name”]} ${user[“age”]}

    获取Map中属性时可以以直接通过属性的key

    ${map.key} ${map[key]}

    获取List中属性通过下标获取

    ${list[index]}

    在指定域中获取属性

    在EL表达式中如果我们直接使用属性名如:${user},它将会在四个域中由小到大依次查找。顺序:pageScope、requestScope、sessionScope、applicationScope。 也可以指定从哪个域中获取: ${ pageScope .user}:当前页面 ${requestScope.user}:当前请求 ${sessionScope.user}:当前会话 ${sessionScope.user}:当前应用

    3.EL隐含对象

    1.pageContext(常用)

    EL中的pageContext和jsp中的pageContext功能一样 作用:获取jsp中的其他8个隐含对象。 例如: 拼接url地址 http:// p a g e C o n t e x t . r e q u e s t . s e r v e r N a m e : {pageContext.request.serverName}: pageContext.request.serverName:{pageContext.request.serverPort}${pageContext.request.contextPath}/

    2.pageScope(常用)

    类型:Map<String,Object> 作用:获取pageContext域中存的属性。 例如: ${pageScope.key}

    3.requestScope(常用)

    类型:Map<String,Object> 作用:获取request域中存的属性。 例如: ${requestScope.key}

    4.sessionScope(常用)

    类型:Map<String,Object> 作用:获取session域中存的属性。 例如: ${session.key}

    5.applicationScope(常用)

    类型:Map<String,Object> 作用:获取application域中存的属性。 例如: ${applicationScope.key}

    6.param(常用)

    类型:Map<String,String> 作用:获取请求参数。 例如:http://localhost:8080/Project/resource?key=value ${param.key}

    7.paramValues

    类型:Map<String,String[]> 作用:获取请求参数。 例如:http://localhost:8080/Project/resource?key=val1&key=val2 ${param.key} (得到的是一个数组)

    8.header

    类型:Map<String,String> 作用:获取请求头。 例如: ${header.key}

    9.headerValues

    类型:Map<String,String[]> 作用:获取请求头。(一个键对应多个值)

    10.initParam

    类型:Map<String,String> 作用:获取初始化参数。

    11.cookie

    类型:Map<String,Cookie> 作用:获取Cookie。 注意:EL中的cookie对象和Servlet中的Cookie不一样,EL中的cookie就代表请求报文所有的Cookie的Map,Map的键就是Cookie的name,值就是name对应的Cookie

    最新回复(0)