JSP EL表达式入门1


1、定义

EL全名为Expression Language,解决了在开发Java Web应用时经常需要将大量Java代码片段嵌入到JSP页面中导致页面看起来很乱的问题。EL表达式通常与JSTL一起使用(还可以与JavaScript结合使用),EL提供了获取对象及属性的简单方式,还可以用来创建算术表达式和逻辑表达式。在EL表达式内可以使用整型数、浮点数、字符串、常量true和false,还有null

2、基本语法

EL的基本语法以 "${" 开头,以 "}" 结尾,中间为合法的表达式,例如:

${expression}

其中expression为有效的表达式。

3、基础操作符

操作符

描述

.

访问一个Bean属性或者一个映射条目

[]

访问一个数组或者链表的元素,也可以访问Bean属性

( )

组织一个子表达式以改变优先级

+

-

减或负

*

/ or div

% or mod

取模

== or eq

测试是否相等

!= or ne

测试是否不等

< or lt

测试是否小于

> or gt

测试是否大于

<= or le

测试是否小于等于

>= or ge

测试是否大于等于

&& or and

测试逻辑与

|| or or

测试逻辑或

! or not

测试取反

empty

测试是否空值

注意:"[]" 和 "." 运算符都可以访问数据,但如果对象的属性名中包括一些特殊符号(如 "-" 或 ".")时,只能使用 "[]" 运算符来访问对象属性。例如:${user[user-name]} 是正确的,但 ${user.user-name}是错误的!

4、隐含对象

隐含对象

描述

pageScope

page 作用域内的属性值的集合

requestScope

request 作用域内的属性值的集合

sessionScope

session 作用域内的属性值的集合

applicationScope

application 作用域内的属性值的集合

param

Request 对象的参数,字符串

paramValues

Request对象的参数,字符串集合

header

HTTP 信息头,字符串

headerValues

HTTP 信息头,字符串集合

initParam

包含Servlet上下文初始参数名和对应值的集合

cookie

包含每个cookie名和值的集合

pageContext

用于访问JSP的内置对象

1)页面上下文对象 pageContext

①作用:用于访问JSP内置对象(如request、response、out、session、exception、page,但不能用于获取application、config、pageContext对象)和servletContext。获取这些内置对象后,即可获取其属性。这些属性与对象的 getXXX() 方法对应,使用时去掉方法名中的get,将首字母改为小写即可,例如 request 对象的 getRequestURL 可以写为:

${pageContext.request.requestURL}

其它访问JSP内置对象的例子:${pageContext.out}、${pageContext.response}……

2)param 和 paramValues 对象的应用

①作用:param对象用于获取请求参数的值;如果一个参数名对应多个值时,需要使用paramValues对象获取请求参数的值。

②返回结果:param对象返回的结果为字符串(若指定的参数不存在,返回的不是null而是空字符串);paramValues对象返回的结果是数组。

③使用示例:

  • param:
<input type="text" name="user" >
<%-- 获取user文本框中的值 --%>
${param.user}

  • paramValues:
<input name="subject" type="checkbox" value="Java基础">Java基础
<input name="subject" type="checkbox" value="Linux基础">Linux基础
<input name="subject" type="checkbox" value="JSP Web学习">JSP Web学习
<%-- 表单提交后,获取subject的值 --%>
${paramValues.subject[0]}
${paramValues.subject[1]}
${paramValues.subject[2]}

3)cookie对象

①作用:cookie对象用于获取Cookie对象。如果在cookie中已经设定一个名称为 username 的值,那么可以使用 ${cookie.username} 来获取该 Cookie对象。但是如果想要获取该Cookie中的值,需要使用Cookie对象的value属性。

②使用示例:

<%
    Cookie cookie = new Cookie("username", "itzcn");
    response.addCookie(cookie);
%>
<%-- 获取Cookie对象cookie名称为username的值 --%>
${cookie.username.value}

4)用于访问作用域范围的隐含对象:pageScope、requestScope、sessionScope、applicationScope

①作用:应用这4个隐含对象指定要查找标示符的作用域后,系统将不再按照默认顺序(page、request、session、application)来查找相应的标示符。这4个隐含对象只能用来取得指定范围内的属性值。

②使用示例!:

<%
    request.setAttribute("a", "hello EL!");
    session.setAttribute("a", "hello JSP!");
  %>
<%--  如果不指定变量所在的作用域,则系统默认按照顺序page、request、session、application来查找对应的标示符--%>
  ${a}
  ${requestScope.a}
  ${sessionScope.a}

优质内容筛选与推荐>>
1、优化反射性能的总结(中)
2、虚拟机备份的五大常见错误及规避方法
3、动态规划专题 多阶段决策问题 蓝桥杯 K好数
4、Example-based Machine Learning是什么?
5、bubble 界面代码


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn