zoukankan      html  css  js  c++  java
  • jsp的el表达式使用


    EL表达式的使用
    EL经常和JSTL一起使用,但是EL又可以单独使用,全称是Expression Language
    在JSP中,经常会打印一些变量的内容,这些变量可以是从某个范围中变量,比如page、request、session、application范围。
    例,打印str变量,下面三种方法都可以:
    <%out.println(str)%>,这样会使JSP页面里面包含JAVA代码;
    <%=str%>只能从本地获得,如果要从session里面获取必须是<%=session.getAttribute()%>;
    ${str}则可以从request、session、application范围中获得。

    EL表达式的语法格式:
    ${标识符}(必须以“${”开始,以“}”结束 “标示符”具体表达式的内容)
    通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象。
    如果域对象中不存在标识符所对应的对象,则返回结果为“”(注意,不是null)。

    EL表达式的变量
    EL存取变量时间的方法很简单,例如${username}。它的意思是取出某一范围中名称为username的变量。
    属性范围在EL中的名称如表所示:
    Page
    pageScope

    Request
    requestScope

    Session
    sessionScope

    Application
    applicationScope

    EL表达式的文字常量
    一个EL表达式包含变量、文字常量、操作符。文字常量主要包括字符串、数字和布尔值、还有NULL,其中
    字符串是由任何由单引号或双引号引起来的一串字符。
    数字常量包括整型、浮点型,整型表示十进制、十六进制和八进制类型的值,浮点型与Java类似,可以包含任何正的或者负的浮点数。
    布尔型包括true和false。
    ${true} ${10} ${10.5f} ${“hello”} ${null}

    EL表达式的操作符
    算术运算符主要有平时常用的“+”、“-”、“*”、“/或div”(***注意这里不是整除***)、“%或mod”
    关系运算符主要有“==或eq”、“!=或ne”、“<或lt”、“>或gt”、“>=或ge”、“<=或le”
    逻辑运算符主要有“&&”、“||”、“!”
    验证运算符“empty”与条件运算符“?:”
    empty作为前缀,用来检索一个值是否为null或者empty。如${empty user.name}用来判断user对象中的name的值是否为null
    ${条件 ? truevalue:falsevalue},如果条件为真,则表达式的值为truevalue,否则为falsevalue


    (一)与范围有关的隐式对象
    与作用范围有关的EL隐含对象包含有:pageScope、requestScope、sessionScope和applicationScope
    它们可以读取使用JSP内置对象pageContext、request、session以及application的setAttribute()方法所设定的对象的数值
    -----即getAttribute(String name),却不能取得其他相关信息。
    例如,要取得session中储存的一个username属性的值,可以利用下面的方法:session.getAttribute("username")
    在EL中则使用下面的方法:${sessionScope.username}
    注意:如果没有设定使用EL内置对象的作用范围,则按照pageScope、requestScope、sessionScope和applicationScope的先后顺序读取属性值。
    (二)与输入有关的隐式对象
    与输入有关的隐含对象有两个,即param和paramValues,它们是EL中比较特别的隐含对象。例如,要取得用户的请求参数时,可以利用下列方法:
    (1)request.getParameter(String name)
    (2)request.getParameterValues(String name)
    在EL中则可以使用param和paramValues两者来取得数据:
    (1)${param.name}
    (2)${paramValues.name}

    (三)其他隐式对象
    1、cookie
    用来取得使用者的cookie值,例如在cookie中设定了username属性值,可以使用${cookie.username.value}来取得属性值。
    2、header和headerValues
    读取请求的头数据,使用header或headerValues内置对象,例如${header[“User-Agent”]},headerValues则用来取得所有的头信息,等价于调用request.getHeaders()方法。
    3、initParam
    initParam用来读取设置在web.xml中的参数值。例如${initParam.repeat},等价于:(String)application.getInitParameter(“repeat”); 或
    servletContext.getInitParameter(“repeat”);
    4、pageContext
    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} 取得主机端的服务信息

    EL表达式的禁用
    (一)在JSP 2.0中默认是启用EL表达式的,但如果在JSP页面中使用了与JSP EL标记符相冲突的其他技术,可以通过使用page指令的isELIgnored属性来忽略JSP EL的标识符。
    a--<%@page isELIgnored="true|false"%>
    (1)true:表示忽略对EL表达式进行计算。
    (2)false:表示计算EL表达式。(默认)
    b--还可以修改web.xml来决定当前的web应用不使用JSP EL。
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
    <jsp-config>
    <jsp-property-group>
    <url-pattern>*.jsp</url-pattern>
    <el-ignored>true</el-ignored>
    </jsp-property-group>
    </jsp-config>
    </web-app>

    EL表达式的Functions 标签库(函数库):
    需要添加一条指令
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

    常用函数描述:
    fn:contains(string, substring) 如果参数string中包含参数substring,返回true
    fn:containsIgnoreCase(string, substring) 如果参数string中包含参数substring(忽略大小写),返回true
    fn:endsWith(string, suffix) 如果参数 string 以参数suffix结尾,返回true
    fn:escapeXml(string) 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回
    fn:indexOf(string, substring) 返回参数substring在参数string中第一次出现的位置
    fn:join(array, separator) 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
    fn:length(item) 返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。
    fn:replace(string, before, after) 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果
    fn:split(string, separator) 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素
    fn:startsWith(string, prefix) 如果参数string以参数prefix开头,返回true
    fn:substring(string, begin, end) 返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符
    fn:substringAfter(string, substring) 返回参数substring在参数string中后面的那一部分字符串
    fn:substringBefore(string, substring) 返回参数substring在参数string中前面的那一部分字符串
    fn:toLowerCase(string) 将参数string所有的字符变为小写,并将其返回
    fn:toUpperCase(string) 将参数string所有的字符变为大写,并将其返回
    fn:trim(string) 去除参数string 首尾的空格,并将其返回

  • 相关阅读:
    User Get 'Access Denied' with Excel Service WebPart
    How To Search and Restore files from Site Collection Recycle Bin
    How To Collect ULS Log from SharePoint Farm
    How To Restart timer service on all servers in farm
    How to Operate SharePoint User Alerts with PowerShell
    How to get Timer Job History
    Synchronization Service Manager
    SharePoint 2007 Full Text Searching PowerShell and CS file content with SharePoint Search
    0x80040E14 Caused by Max Url Length bug
    SharePoint 2007 User Re-created in AD with new SID issue on MySite
  • 原文地址:https://www.cnblogs.com/zy19930408/p/4868963.html
Copyright © 2011-2022 走看看