EL表达式

         EL表达式的作用就是动态的显示不同作用域中的对象中封装的数据,它有效的简化了JSP页面中显示数据的方式。类似于El表达式的还有 JSTL 表达式,在struts2中还有OGNL表达式都有相同的作用。

  • 在EL表达式中提供了[] 和.俩种表达式来存取数据。

                如果存取的属性名称中包含一些特殊字符,比如 . ? _等非字母或数字的符号,这时应该使用的是[ ]。

                如:${user.name}是正确的,如果使用${user[name]}则是不正确的。

                        ${user.First-name}应当改为${user[First-name]}

                       如果实现动态取值的话,就必须要使用 []

  • EL表达式存取数据的方法很简单,例如${username}。它的作用就是取出某一范围内名称为username的变量

               因为并没有指定从那个范围的usernsmr,所以他会依序从Page、Request、Session、Application范围查找,如果找到,则直接回显,如果没有,则返回null.

                范围在EL表达式中的名称分别为:PageScope、RequestScope、SessionScope、ApplicationScope

  • 与输入有关的隐含对象有俩个:param和paramValues,他们是EL中比较特别的隐含对象,例如我们获取用户的请求参数的时候:

             request.getParameter(String name);

             request.getParameterValues(String name);

            在EL表达式中可以使用param和paramValues俩者来取得数据。

                         ${param.name}

                         ${paramValue.name}

  •  JSTL并没有提供设定cookie的动作,如果获取cookie中的一个名称为username的值,可以使用${cookie.username}来获取
  • header存储用户浏览器和服务器用来沟通的数据,如获取浏览器的版本,可以使用${header["User-Agent"]}
  • initParam取得web站点设定的环境参数:String userid = (String)application.getInitParameter("userid");可以使用${initParam.userid}来获取
  • 通过pageContext取得其他有关用户要求或页面的详细信息。

                   

                 ${pageContext.request.queryString}         取得请求的参数字符串
                  ${pageContext.request.requestURL}         取得请求的URL,但不包括请求之参数字符串
                 ${pageContext.request.contextPath}         服务的web application 的名称
                 ${pageContext.request.method}           取得HTTP 的方法(GET、POST)
                 ${pageContext.request.protocol}         取得使用的协议(HTTP/1.1、HTTP/1.0)
                 ${pageContext.request.remoteUser}         取得用户名称
                 ${pageContext.request.remoteAddr }         取得用户的IP 地址
                 ${pageContext.session.new}             判断session 是否为新的
                 ${pageContext.session.id}               取得session 的ID
                 ${pageContext.servletContext.serverInfo}   取得主机端的服务信息


在mvc模式下,jsp的主要作用是用来显示数据,因此,EL表达式在定义函数,进行运算的时候并不多。

EL中的基础操作符

EL表达式支持大部分Java所提供的算术和逻辑操作符:

操作符描述
.访问一个Bean属性或者一个映射条目
[]访问一个数组或者链表的元素
( )组织一个子表达式以改变优先级
+
-减或负
*
/ or div
% or mod取模
== or eq测试是否相等
!= or ne测试是否不等
< or lt测试是否小于
> or gt测试是否大于
<= or le测试是否小于等于
>= or ge测试是否大于等于
&& or and测试逻辑与
|| or or测试逻辑或
! or not测试取反
empty测试是否空值

JSP EL中的函数

JSP EL允许您在表达式中使用函数。这些函数必须被定义在自定义标签库中。函数的使用语法如下:

${ns:func(param1, param2, ...)}

ns指的是命名空间(namespace),func指的是函数的名称,param1指的是第一个参数,param2指的是第二个参数,以此类推。比如,有函数fn:length,在JSTL库中定义,可以像下面这样来获取一个字符串的长度:

${fn:length("Get my length")}

要使用任何标签库中的函数,您需要将这些库安装在服务器中,然后使用<taglib>标签在JSP文件中包含这些库。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值