百度
360搜索
搜狗搜索

el表达式的语法,jsp中$是什么意思?怎么用?详细介绍

本文目录一览: EL(表达式语言)

EL(Expression Language)是一门表达式语言,它对应<%=…%>。我们知道在JSP中,表达式会被输出,所以EL表达式也会被输出。
1.EL的格式
2.EL运算符

3.EL不显示null 当EL表达式的值为null时,会在页面上显示空白,即什么都不显示。
例如: EL来访问JavaBean属性 Person.java
EL一共11个内置对象,无需创建即可以使用。 pageScope,requestScope,sessionScope,applicationScope,param,paramValues,header,headerValues,initParam,cookie,pageContext 除了pageContext其余的都是Map类型
EL使用语法 ${Map.key} 或 ${map['key']}
EL函数库是由第三方对EL的扩展,现在学习的EL函数库是由JSTL添加的 EL函数库就是定义一些有 返回值 的 静态方法 。然后通过EL语言来调用它们
EL函数库中包含了很多对字符串的操作方法,以及对集合对象的操作。 例如: ${fn:length(“abc”)} 会输出3,即字符串的长度
1.导函数库 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/function"%>
2.函数库
例如
1.写一个类,写一个有返回值的静态方法; 2.创建demo.tld文件,可以参考fn.tld文件来写,把itcast.tld文件放到/WEB-INF目录下; 3.在页面中添加taglib指令,导入自定义标签库。
DemoFuncations.java
demo.tld(放到classes下)
index.jsp

Java中的El表达式是什么,怎么用呢?可以举例吗?

E L(Expression Language) 目的:为了使JSP写起来更加简单。
表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法。它是一种简单的语言,基于可用的命名空间(PageContext 属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型)的访问符、映射到 Java 类中静态方法的可扩展函数以及一组隐式对象。
EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能。脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素。它们通常用于对象操作以及执行那些影响所生成内容的计算。JSP 2.0 将 EL 表达式添加为一种脚本编制元素。
二、JSP EL简介
1、语法结构
${expression}
2、[ ]与.运算符
EL 提供“.“和“[ ]“两种运算符来存取数据。
当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“。例如:
${user.My-Name}应当改为${user["My-Name"] }
如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
${sessionScope.user[data]}中data 是一个变量
3、变量
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
属性范围在EL中的名称
Page PageScope
Request RequestScope
Session SessionScope
Application ApplicationScope
二、JSP EL 中的有效表达式
有效表达式可以包含文字、操作符、变量(对象引用)和函数调用。我们将分别了解这些有效表达式中的每一种:
1、文字
JSP 表达式语言定义可在表达式中使用的以下文字:
文字 文字的值
Boolean
true 和 false
Integer
与 Java 类似。可以包含任何正数或负数,例如 24、-45、567
Floating Point
与 Java 类似。可以包含任何正的或负的浮点数,例如 -1.8E-45、4.567
String
任何由单引号或双引号限定的字符串。对于单引号、双引号和反斜杠,使用反斜杠字符作为转义序列。必须注意,如果在字符串两端使用双引号,则单引号不需要转义。
Null null
2、操作符
JSP 表达式语言提供以下操作符,其中大部分是 Java 中常用的操作符:
术语 定义
算术型
+、-(二元)、*、/、div、%、mod、-(一元)
逻辑型
and、&&、or、||、!、not
关系型
==、eq、!=、ne、、gt、<=、le、>=、ge。可以与其他值进行比较,或与布尔型、字符串型、整型或浮点型文字进行比较。

空操作符是前缀操作,可用于确定值是否为空。
条件型 A ?B :C。根据 A 赋值的结果来赋值 B 或 C。
3、隐式对象
JSP 表达式语言定义了一组隐式对象,其中许多对象在 JSP scriplet 和表达式中可用:
pageContext
JSP 页的上下文。它可以用于访问 JSP 隐式对象,如请求、响应、会话、输出、servletContext 等。例如,${pageContext.response} 为页面的响应对象赋值。
此外,还提供几个隐式对象,允许对以下对象进行简易访问:
术语 定义
param
将请求参数名称映射到单个字符串参数值(通过调用 ServletRequest.getParameter (String name) 获得)。getParameter (String) 方法返回带有特定名称的参数。表达式 $(param.name) 相当于 request.getParameter (name)。
paramValues
将请求参数名称映射到一个数值数组(通过调用 ServletRequest.getParameter (String name) 获得)。它与 param 隐式对象非常类似,但它检索一个字符串数组而不是单个值。表达式 ${paramvalues.name) 相当于 request.getParamterValues(name)。
header
将请求头名称映射到单个字符串头值(通过调用 ServletRequest.getHeader(String name) 获得)。表达式 ${header.name} 相当于 request.getHeader(name)。
headerValues
将请求头名称映射到一个数值数组(通过调用 ServletRequest.getHeaders(String) 获得)。它与头隐式对象非常类似。表达式 ${headerValues.name} 相当于 request.getHeaderValues(name)。
cookie 将 cookie 名称映射到单个 cookie 对象。向服务器发出的客户端请求可以获得一个或多个 cookie。表达式 ${cookie.name.value} 返回带有特定名称的第一个 cookie 值。如果请求包含多个同名的 cookie,则应该使用 ${headerValues.name} 表达式。
initParam 将上下文初始化参数名称映射到单个值(通过调用 ServletContext.getInitparameter(String name) 获得)。
除了上述两种类型的隐式对象之外,还有些对象允许访问多种范围的变量,如 Web 上下文、会话、请求、页面:
术语 定义
pageScope
将页面范围的变量名称映射到其值。例如,EL 表达式可以使用 ${pageScope.objectName} 访问一个 JSP 中页面范围的对象,还可以使用 ${pageScope.objectName.attributeName} 访问对象的属性。
requestScope
将请求范围的变量名称映射到其值。该对象允许访问请求对象的属性。例如,EL 表达式可以使用 ${requestScope.objectName} 访问一个 JSP 请求范围的对象,还可以使用 ${requestScope.objectName.attributeName} 访问对象的属性。
sessionScope
将会话范围的变量名称映射到其值。该对象允许访问会话对象的属性。例如:
$sessionScope.name}
applicationScope
将应用程序范围的变量名称映射到其值。该隐式对象允许访问应用程序范围的对象。
三、特别强调:
1、注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性。例如:即使现有的 pageContext 属性包含某些其他值,${pageContext} 也返回 PageContext 对象。
2、 注意 <%@ page isELIgnored="true" %> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。
隐含对象数据演示:
EL 表达式定义了11个隐含对象,使用这11个对象可以很方便的读取到session,cookie,HttpHeader,用户提交表单(param)等
隐含对象
内容
applicationScope
应用程序范围内的scoped变量组成的集合
cookie
所有cookie组成的集合
header
HTTP请求头部,字符串
headerValues
HTTP请求头部,字符串集合
initParam
全部应用程序参数名组成的集合
pageContext
当前页面的javax.servlet.jsp.PageContext对象
pageScope
页面范围内所有对象的集合
param
所有请求参数字符串组成的集合
paramValues
所有作为字符串集合的请求参数
requestScope
所有请求范围的对象的集合
sessionScope
所有会话范围的对象的集合
下面是获取HTTP访问头部数据和用户提交数据的示例
EL表达式 运算结果
${header["host"]}
这里得到HTTP连接头部的host值
${header["accept"]} 这里获得HTTP头部的accept值
${header["user-agent"]} 这里获得HTTP头部的user-agent值
以下可以读取用户提交的信息,假设用户提交信息为 ?name=myname&alies=now.net.cn(这里有两种访问方式,一种是使用[]来进行访问,另外一种是使用" "来进行访问,两种访问效果是一样的。)
${param["name"] } myname
${param.name} myname
${param["alies"] } now.net.cn
${param.alies} now.net.cn

阅读更多 >>>  jsp技术是什么意思,jsp是什么?

java中EL表达式怎么用

网页里搜索的也是这里或别的地方回答的啊!
String duan=(String)request.getAttribute("duan");
如果用EL表达式的话,就可以用
${requestScope.duan}
如果你的服务端存的是session,那么就是${sessionScope.duan}
这只是形象的举个例子,EL表达式结合实体bean的用法还有很多,只能仔细看书喽~!
java 中jsp中的EL用法如下:
1.获取数据:
EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
2.执行运算:
利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}
4.获取web开发常用对象
EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
5.调用Java方法
EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。
使用EL表达式获取数据语法:“${标识符}”EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、requestsession、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
示例:${user}

jsp中$是什么意思?怎么用?

===================================
${code},这个是el表达式的语法规则,兄弟你可以找找el表达式的相关资料。
===================================
jsp中${}----是EL表达式的常规表示方式,目的是为了获取{}中指定的对象(参数、对象等)的值如:${user.name}<====>User user = (User)request(搜寻范围).getAttribute(user);String name = user.getName();out.println(name)
从当前页面起开始搜寻 user对象,然后获取改对象的name属性值,其搜寻的范围依次是:page、request、session、application,如果未搜索到,即会返回null值。
扩展资料:
jsp中${}的优缺点:
优点:
1、一次编写,到处运行。除了系统之外,代码不用做任何更改。
2、系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。
3、强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
4、多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
5、支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。
缺点:
1、与ASP也一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
2、Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。
参考资料来源:百度百科—jsp

jsp中的JSTL与EL表达式用法及区别

JSTL (JSP Standard Tag Library ,JSP标准标签库)
JSTL标签库分为5类:JSTL核心标签库、JSTL函数标签库、数据库标签库、I18N格式化标签库、XML标签库。
JSTL的核心标签库主要包括:表达式操作、流程控制、迭代操作和URL操作。以下是JSTL常用标签的用法:
一、表达式操作
1、

作用:用于显示数据的内容。

语法1:没有本体内容

语法2:有本体内容

default value

属性说明:

value:需要显示出来的值。

default:如果value的值为null时,则显示default指定的值。

escapeXml:是否转换特殊字符,默认为true。即默认会将<、>、’、” 和 & 转换为 <、>、'、"和&。如果设为false,则不进行转换。

2、

作用:用于将变量的值存储在JSP范围中或JavaBean的属性中。

语法1:将value的值存储在范围为scope的varName变量中

语法2:将本体内容的数据存储在范围为scope的varName变量中

...本体内容

语法3:将value的值存储在target对象的property属性中

语法4:将本体内容的数据存储在target对象的property属性中

...本体内容

属性说明:

value:要被存储的值。

var:欲存入的变量名称。

scope:var变量的JSP范围。默认为page范围。

target:为一JavaBean或Map对象。

如果“target”是一个Map,“property”指定的是该Map的一个键;如果“target”是一个bean,“property”指定的 是该bean的一个成员字段。

如果“target”表达式为null,容器会抛出一个异常。

如果“target”表达式不是一个Map或bean,容器会抛出一个异常。

如果“target”表达式是一个bean,但是这个bean没有与“property”匹配的成员字段,容器会抛出一个异常。

property:指定的target对象的属性。

3、

作用:移除变量。

语法:

属性说明:

var:要移除的变量。

scope:var变量所在的JSP范围,默认为page范围。

4、

作用:用于处理产生错误的异常情况,并将错误信息存储起来。

语法:

...欲抓取错误的部分

属性说明:

var:将错误信息存储在指定的变量中,可以通过该变量获取错误信息。

二、流程控制

1、

作用:类似if判断语句,用于表达式判断。

语法1:没有本体内容

语法2:有本体内容

...本体内容

属性说明:

test:当该属性中的表达式运算结果为true,则会执行本体内容,为false则不执行,该标签必须要有test属性。

var:存储test的运算结果,为true或false。

scope:var变量的JSP范围。

2、

作用:这三个标签必须组合使用,用于流程控制。

范例:

condition1为true

condition2为true

condition1和condition2都为false

范例说明:当condition1为true时,会显示“condition1为true”;当condition1为false且condition2为true时,会显示“condition2为true”,如果两者都为false,则会显示“condition1和condition2都为false”。

注意:若condition1和condition2的运算结果都为true时,此时只会显示"condition1为true"。

限制说明:

a、

标签必须在


之间使用。

b、在同一个

中,

必须是最后一个标签,且只能有一个

标签。

可以有多个。

c、在同一个

中,当所有

的test都为false时,才执行

的本体内容。

三、迭代操作

1、

作用:为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行

的本体内容。

语法1:迭代一个集合对象中的所有成员

...本体内容

语法2:迭代指定次数

...本体内容

属性说明:

items:被迭代的集合对象。

var:存放当前指到的集合对象中的成员。

varStatus:存放当前指到的成员的相关信息。(index:当前指到的成员的索引;count:当前总共指到成员的总数;first:当前指到的成员 是否为第一个成员;last:当前指到的成员是否为最后一个成员)。

begin:迭代开始的位置,默认为0。

end:迭代结束的位置,默认为最后。

step:每次迭代的间隔数,默认为1。

范例:

<%

int atts[] = {1,2,3,4,5,6,7,8,9,10};

request.setAttribute("atts", atts);

%>

${item}

此标签也可以用于普通的循环控制,与for循环一样。如:

${item}

2、

作用:用指定分隔符分隔一字符串,并迭代分隔后的数组。

语法:

本体内容

属性说明:

items:被分隔并迭代的字符串。

delims:用来分隔字符串的字符。

var:存放当前指到的成员。

varStatus:存放当前指到的成员的相关信息。(index:当前指到的成员的索引;count:当前总共指到成员的总数;first:当前指到的成员 是否为第一个成员;last:当前指到的成员是否为最后一个成员)。

begin:迭代开始的位置,默认为0。

end:迭代结束的位置,默认为最后。

step:每次迭代的间隔数,默认为1。

范例1:

${item}

用“,”号分隔字符串,并迭代输出分隔后的字符串数组,输出结果为“ABCDE”。

范例2:

${item}

delims中指定了三个分隔符“,”、“;”和“-”,可见我们一次可以设定所有想当做分隔字符串用的字符。输出结果依然为“ABCDE”。

四、URL操作

1、

作用:将其他静态或动态文件包含到本身JSP网页中。不但可以包含同一个web application下的文件,还可以包含其他web application或其他网站的文件。

语法:

[
]

属性说明:

url:要包含至本身JSP网页的其他文件的URL。必选

var:将包含进来的其他文件以字符串的形式存放到指定的变量中。可选

scope:var变量的作用范围。可选

:可选子标签,用于向包含进来的其他网页文件传递参数。

范例:

说明:当

标签中未指定var变量时,会直接将包含进来的其他网页文件内容显示出来,如果指定了var变量,则会将内容存放到var变量中,不显示。

2、

作用:生成一个URL。

语法:

[
]

范例1:

网站数据信息

"el表达式的语法,jsp中$是什么意思?怎么用?"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:el表达式的语法,jsp中$是什么意思?怎么用?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!