手机版

JSP EL表达式详细介绍

时间:2021-10-26 来源:互联网 编辑:宝哥软件园 浏览:

1.JSP EL语言定义了EL(表达式语言)目的:让JSP更容易写。表达式语言受到ECMAScript和XPath表达式语言的启发,提供了一种在JSP中简化表达式的方法。它是一种简单的语言,基于可用的命名空间(页面上下文属性)、集合和运算符(算术、关系和逻辑)的嵌套属性和访问器、映射到Java类中静态方法的可扩展函数以及一组隐式对象。EL提供了在JSP脚本元素范围之外使用运行时表达式的能力。脚本元素是页面中可用于在JSP文件中嵌入Java代码的元素。它们通常用于对象操作和执行影响生成内容的计算。JSP 2.0添加了EL表达式作为脚本元素。

二、JSP EL简介

1.语法结构${expression}2、[]和。运算符EL提供了两个运算符,“”和“]”来访问数据。当要访问的属性的名称包含一些特殊字符时,例如。还是?如果符号不是字母或数字,则必须使用“[]”。例如,${user。我的姓名}应更改为${user['我的姓名']}。如果要动态取值,可以使用“]”,但要使用“.”无法动态取值。例如,${sessionScope.user[data]}中的数据是一个变量。3.变量EL访问变量数据的方法很简单,例如${username}。意思是在一个范围内取出一个名为username的变量。因为我们没有在任何范围内指定用户名,所以它将依次从页面、请求、会话和应用程序中查找。如果在途中找到用户名,将直接返回,不再进一步搜索,但如果没有找到所有范围,将返回null。EL页面范围请求范围会话会话范围应用程序范围

二、JSP EL 中的有效表达式

中属性的名称有效的表达式可以包括单词、运算符、变量(对象引用)和函数调用。我们将分别了解这些有效表达式中的每一个:

1、文字

JSP表达式语言定义了可以在表达式中使用的以下单词:文字值Booleantrue和falseInteger类似于Java。它可以包含任何正数或负数,例如,24,-45,567浮点类似于Java。它可以包含任何正的或负的浮点数,例如-1.8E-45,4.567String,任何由单引号或双引号限定的字符串。对于单引号、双引号和反斜杠,请使用反斜杠字符作为转义序列。必须注意,如果在字符串的两端都使用双引号,则不需要转义单引号。nulls

2、操作符

JSP表达式语言提供了以下运算符,大部分在Java中常用:术语定义算术类型,-(二进制),*,/,div,%,mod,-(一元)逻辑类型和,or,| |,不是关系==,eq,=、ne、gt、=、le、=、ge .它可以与其他值进行比较,也可以与布尔值、字符串、整数或浮点文本进行比较。null运算符是一种前缀运算,可用于确定值是否为null。条件A?B :C .根据赋值的结果,assign b或c.

3、隐式对象

JSP表达式语言定义了一组隐式对象,其中很多在JSP scriplet和表达式中都有:pageContextJSP页面的上下文。它可以用来访问JSP隐式对象,比如请求、响应、会话、输出、servletContext等等。例如,${pageContext.response}为页面的响应对象赋值。此外,还提供了几个隐式对象,允许轻松访问以下对象:术语定义参数将请求参数名称映射到单个字符串参数值(通过调用servlet request . getparameter(string name)获得)。方法返回一个具有特定名称的参数。表达式$(param.name)等效于request.getParameter (name)。ParamValues将请求参数名称映射到一个数字数组(通过调用servlet request . getparameter(string name)获得)。它与param隐式对象非常相似,但它检索的是字符串数组,而不是单个值。表达式${paramvalues.name)等效于request . GetParameterValues(name)。

Header将请求头名称映射到单个字符串头值(通过调用servlet request . getheader(string name)获得)。表达式${header.name}相当于request.getHeader(名称)。HeaderValues将请求头名称映射到一个数字数组(通过调用servletrequest.getheaders(字符串)获得)。它与头隐式对象非常相似。表达式${headerValues.name}相当于request.getHeaderValues(名称)。将cookie名称映射到单个cookie对象。客户端对服务器的请求可以获得一个或多个cookie。表达式${cookie.name.value}返回具有特定名称的第一个cookie值。如果请求包含多个同名的cookie,则应使用表达式${headerValues.name}。InitParam将上下文初始化参数名称映射到单个值(通过调用servletcontext获得。getinitparameter (stringname))。除了以上两种类型的隐式对象之外,还有一些对象允许访问各种变量,如Web上下文、会话、请求和页面:术语定义页面范围将页面范围的变量名映射到它们的值。例如,一个EL表达式可以使用${pageScope.objectName}来访问JSP中的页面范围对象,也可以使用${pageScope。objectname。attributename}来访问对象的属性。RequestScope将请求范围的变量名映射到它的值。此对象允许访问请求对象的属性。例如,EL表达式可以使用${requestScope.objectName}访问JSP请求范围的对象,使用$ { request scope . object name . attribute name }访问对象的属性。会话范围将会话范围内的变量名映射到它们的值。此对象允许访问会话对象的属性。例如,$ sessionscope。name} applicationscope将应用程序范围内的变量名映射到它们的值。这个隐式对象允许访问应用程序范围的对象。00-1010 1.请注意,当表达式按名称引用这些对象之一时,它会返回相应的对象,而不是相应的属性。例如,$ {pageContext}返回一个pageContext对象,即使现有的PageContext属性包含一些其他值。2.请注意,%@页为“或=‘真’”表示是否禁用EL语言,而“真”表示禁用EL语言。FALSE表示在中默认情况下不禁用EL语言。JSP2.0. 00-1010 1。例如,%=请求。getparameter ("username")%相当于${ param.username }2。例如,但是EL语言的以下句子可以完成。如果用户名为空,它将不会显示空值,而是显示一个值。

%=user . GetAdr()%相当于${user.addr}。3.例如:%=请求。getattribute ("userlist")%相当于$ {requestScope.userlist }4。例如,原理与上述示例3相同。$ { session scope . user list } 1 $ { session scope . user list } 2 $ { application scope . user list } 3 $ { page scope . user list } 4 $ { uselist }含义:执行顺序为4 1 2 3。随之而来的是。只是一个字符串,它不是真正的内置对象。您不能调用该对象。4.例如,%=user . GetAdr()%相当于${user.addr}第一句之前的用户,这是一个变量。第二句后面的用户必须是某个范围内的属性。

版权声明:JSP EL表达式详细介绍是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。