流年似水博客开通了,本站主要是写关于Web和大数据方面内容,正在更新中,欢迎大家光临!
  1. 文章:97 篇
  2. 总浏览:68,600 次
  3. 评论:22条
  4. 最后更新:2020-06-08
  5. 分类目录:39 个

JavaWeb之EL表达式(Expression Language)

Web基础 xy@xy 538℃ 2评论

EL表达式(Expression Language)

EL简介

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

EL基本使用

  • EL表达式总是放在{}中,而且前边有一个$作为前缀。
    • ${EL表达式}
  • 获取域中的对象可以直接使用对象名,如获取域中名字为user的对象
    • ${user}
  • 获取对象的属性值可以直接通过“对象.属性名”
    • ${user.name}
    • ${user.age}
    • 注意:这里的属性名是get和set方法对应的属性值,并不是对象中的变量名。
      • 比如:如果获取name属性值,那么该对象中必定要存在一个getName()方法。
  • 获取对象的属性也可以通过“对象[“属性名”]”
    • ${user[“name”]}
    • ${user[“age”]}
  • 获取Map中属性时可以以直接通过属性的key
    • ${map.key}
    • ${map[key]}
  • 在指定域中获取属性
    • 在EL表达式中如果我们直接使用属性名如:${user},它将会在四个域中由小到大依次查找。顺序:pageScope、requestScope、sessionScope、applicationScope。
    • 也可以指定从哪个域中获取:
      • ${ pageScope .user}:当前页面
      • ${requestScope.user}:当前请求
      • ${sessionScope.user}:当前会话
      • ${sessionScope.user}:当前应用

EL隐含对象

  • EL中包含11个隐含对象,这些对象可以在EL表达式中直接使用。
pageContext
  • pageContext和JSP中的pageContext功能一样。

请求域

  • 请求域主要用于获取域对象中的属性,四个对象分别对应四个请求域。
    • pageScope
    • requestScope
    • sessionScope
    • applicationScope

请求参数

  • 参数对象主要用于获取get或post请求中的参数。
    • param;
      • 获取指定的请求参数, 如:${param.username}
    • paramValues;
      • 获取请求参数数组,如:${paramValues.sport[1]}

其他

  • header;
  • headerValues;
  • initParam;
  • cookie;

EL逻辑运算

运算符
说明
范例
结果
+
${17+5}
22
-
${17-5}
12
*
${17*5}
85
/或div
${17/5}或${17 div 5}
3
%或mod
取余
${17%5}或${17 mod 5}
2
==或eq
等于
${5==5}或${5 eq 5}
true
!=或ne
不等于
${5!=5}或${5 ne 5}
false
<或lt
小于
${3<5}或${3 lt 5}
true
>或gt
大于
${3>5}或${3 gt 5}
false
<=或le
小于等于
${3<=5}或${3 le 5}
true
>=或ge
大于等于
${3>=5}或${3 ge 5}
false
&&或and
并且
${true&&false}或${true and false}
false
!或not
${!true}或${not true}
false
||或or
或者
${true||false}或${true or false}
true
empty
是否为空
${empty “”},可以判断字符串、数据、集合的长度是否为0,为0返回true。empty还可以与not或!一起使用。${not empty “”}
true

自定义EL表达式

EL表达式的自定义方法的步骤:

  • 1、编写一个普通类,提供一个实现功能的静态方法
  • 2、在WEB-INF目录中创建一个扩展名为 .tld 的xml文件,进行相关配置,注意:该文件不能放在classes和lib目录中
  • 3、在jsp页面中使用taglib指令引入外部的标签库或者方法库

1、编写一个普通类,提供一个实现功能的静态方法

2、在WEB-INF目录中创建一个 扩展名为 .tld 的xml文件 ,并进行相关配置,注意:该文件不能放在classes和lib目录中

3、在jsp页面中使用taglib指令引入外部的标签库或者方法库

4、效果如下图所示:

 

自定义EL表达式转自:https://cloud.tencent.com/developer/article/1353252

 

 

转载请注明:流年似水 » JavaWeb之EL表达式(Expression Language)

喜欢 (4)or分享 (0)

Warning: copy(https://cn.gravatar.com/avatar/?s=54&d=%2Fwp-content%2Fthemes%2Fyusi1.0%2Fimg%2Fdefault.png&r=g): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 239

Warning: copy(/wp-content/themes/yusi1.0/img/default.png): failed to open stream: No such file or directory in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 243
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽

  1. Warning: copy(https://cn.gravatar.com/avatar/54dd2922b18b086f470370cc0f9caa92?s=54&d=%2Fwp-content%2Fthemes%2Fyusi1.0%2Fimg%2Fdefault.png&r=g): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 239
    测试评论
    xy@xy2019-08-05 14:29 Reply

  2. Warning: copy(https://cn.gravatar.com/avatar/54dd2922b18b086f470370cc0f9caa92?s=54&d=%2Fwp-content%2Fthemes%2Fyusi1.0%2Fimg%2Fdefault.png&r=g): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /usr/share/nginx/html/timewentby/wp-content/themes/yusi1.0/functions.php on line 239
    测试评论二
    xy@xy2019-08-05 14:29 Reply