zoukankan      html  css  js  c++  java
  • JSP 表达式语言

    JSP 表达式语言

    JSP表达式语言EL)使得访问存储在JavaBean中的数据变得非常简单。JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式。在JSP EL表达式内可以使用整型数,浮点数,字符串,常量truefalse,还有null

    JSP EL允许您指定一个表达式表示属性值。一个简单的表达式语法如下:

    ${expr}

    其中,expr指的是表达式。在JSP EL中通用的操作符是 {} 。这两个操作符允许您通过内嵌的JSP对象访问各种各样的JavaBean属性。

    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支持下表列出的隐含对象:

    隐含对象 描述

    1.pageScope     page 作用域

    2.requestScope request 作用域

    3.sessionScope session 作用域

    4.applicationScope application 作用域

    5.param         Request 对象的参数,字符串

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

    7.header         HTTP 信息头,字符串

    8.headerValues HTTP 信息头,字符串集合

    9.initParam    上下文初始化参数

    10.cookie        Cookie

    11.pageContext   当前页面的pageContext

    您可以在表达式中使用这些对象,就像使用变量一样。

    pageContext对象

    pageContext对象是JSPpageContext对象的引用。通过pageContext对象,您可以访问request对象。比如,访问request对象传入的查询字符串,就像这样:

    ${pageContext.request.queryString}

    Scope对象

    pageScoperequestScopesessionScopeapplicationScope变量用来访问存储在各个作用域层次的变量。

    举例来说,如果您需要显式访问在applicationScope层的box变量,可以这样来访问:applicationScope.box

    paramparamValues对象

    paramparamValues对象用来访问参数值,通过使用request.getParameter方法和request.getParameterValues方法。

    举例来说,访问一个名为order的参数,可以这样使用表达式:

    1.${param.order},或者2.${param["order"]}

    接下来的例子表明了如何访问request中的username参数:

    <%@ page import="java.io.*,java.util.*" %>

    <%

        String title = "Accessing Request Param";

    %>

    <html>

    <head>

    <title><% out.print(title); %></title>

    </head>

    <body>

    <center>

    <h1><% out.print(title); %></h1>

    </center>

    <div align="center">

    <p>${param["username"]}</p>

    </div>

    </body>

    </html>

    param对象返回单一的字符串,而paramValues对象返回一个字符串数组

    headerheaderValues对象

    headerheaderValues对象用来访问信息头,通过使用 request.getHeader方法和request.getHeaders方法。

    举例来说,要访问一个名为user-agent的信息头,可以这样使用表达式:

    ${header.user-agent},或者${header["user-agent"]}

    接下来的例子表明了如何访问user-agent信息头

    <%@ page import="java.io.*,java.util.*" %>

    <%

        String title = "User Agent Example";

    %>

    <html>

    <head>

    <title><% out.print(title); %></title>

    </head>

    <body>

    <center>

    <h1><% out.print(title); %></h1>

    </center>

    <div align="center">

    <p>${header["user-agent"]}</p>

    </div>

    </body>

    </html>

    优点:方便快捷的使用隐式对象里面的属性

    缺点:不能代替流程控制,例如

    1. for循环/while/switch...,
    2. 没有代码补全,找BUG不好找。
  • 相关阅读:
    jQuery 插件开发——Menu(导航菜单)
    jQuery 插件开发——PopupLayer(弹出层)
    jQuery 插件开发——GridData(表格)
    angularjs+requlirejs 搭建前端框架(1)
    探讨js闭包
    python的特殊方法介绍
    收集TCP端口的访问延迟和丢包率
    【IT界的厨子】酱香鲈鱼
    Centos 6.5 安装Python 3.7
    python技巧 python2中的除法结果为0
  • 原文地址:https://www.cnblogs.com/qq308015824/p/11032960.html
Copyright © 2011-2022 走看看