1、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
表示应用范围的变量。
注意:任何由单引号或双引号限定的字符串。对于单引号、双引号和反斜杠,使用反斜杠字符作为转义序列。必须注意,如果在字符串两端使用双引号,则单引号不需要转义。
4)
1--EL表达式用${}表示,可用在所有的HTML和JSP标签中,作用是代替JSP页面中复杂的JAVA代码。
2--EL表达式可操作常量、变量和隐式对象。 最常用的隐式对象有${param}和${paramValues}。其中${param}表示返回请求参数中单个字符串的值。${paramValues}表示返回请求参数的一组值。
3 --<%@
page isELIgnored="true"%> 表示是否禁用EL语言,true表示禁止.false表示不禁止。JSP2.0中默认的启用EL语言。
4-- EL语言可显示逻辑表达式。如:
${true
and false}结果是false
关系表达式如${5>6} 结果是false
算术表达式如 ${5+5} 结果是10
5--EL中的变量搜索范围是:page—>request—>
session—> application
点运算符(.)和"[ ]"都是表示获取变量的值,区别是[ ]可以显示非词类的变量。
2、EL隐含对象
1)与范围有关的隐含对象
与范围有关的EL 隐含对象包含以下4个:pageScope、requestScope、sessionScope 和applicationScope;它们基本上就和JSP的pageContext、request、session和application一样;在EL中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String
name),却不能取得其他相关信息。
例如:我们要取得session中储存一个属性username的值,可以利用下列方法:
session.getAttribute("username") 取得username的值,
在EL中则使用下列方法
${sessionScope.username}
2)与输入有关的隐含对象
与输入有关的隐含对象有2个:param和paramValues,它们是EL中比较特别的隐含对象。
例如我们要取得用户的请求参数时,可以利用下列方法:
request.getParameter(String name)
request.getParameterValues(String name)
在EL中则可以使用param和paramValues两者来取得数据。
${param.name}
${paramValues.name[index]}
3.其他隐含对象
1)cookie
JSTL并没有提供设定cookie的动作,
例:要取得cookie中有一个设定名称为username的值,可以使用${cookie.username}
来取得它。
2)header和headerValues
header 储存用户浏览器和服务端用来沟通的数据
例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}。
另外在极少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。
3)initParam
initParam取得设定web站点的环境参数(Context)
例:一般的方法String userid =
(String)application.getInitParameter("userid");
可以使用 ${initParam.userid}来取得名称为userid
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} 取得主机端的服务信息
4、条件标签
1.算术运算符有五个:+、-、*、/或div、%或mod
2.关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
3.逻辑运算符有三个:&&或and、||或or、!或not
4.其它运算符有三个:Empty运算符、条件运算符、()运算符
例:${empty param.name}、${A?B:C}、${A*(B+C)}
5、JSP2.0中EL扩展表达式语言的设置
有了JSP2.0,就可以使用EL扩展表达式了。对于一个单个JSP页面,你可以使用定义page指令来设置jsp页面是否支持EL。默认是支持EL(如果要页面不支持EL,请设置为isELIgnored=true;
<
%@ page isELIgnored="true|false"%>
对于整个JSP应用程序,要修改WEB.XML配置(tomcat5.0.16默认是支持EL的);
<jsp-property-group>
<description>property group for JSPConfiguration.</description>
<display-name>JSPConfiguration</display-name>
<url-pattern>/jsp/*</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>GB2312</page-encoding>
<scripting-invalid>true</scripting-invalid>
<include-prelude>/include/prelude.jspf</include-prelude>
<include-coda>/include/coda.jspf</include-coda>
</jsp-property-group>
6、JSP2.0中定义和使用函数
1)
表达式语言允许你定义可在表达式中调用的函数。函数必须作为public类中的public
static方法编写。同时要将文件映射到TLD标志库文件中。
为了说明函数的使用,我们举一个简单的例子,把两个数相加。首先要编写求两数之和的Java方法代码,如代码示例所示,这里定义了一个静态方法,它接收两个字符串参数,把它们解析成整数并返回它们的和。
示例文件:Compute.java
package
com.itttop.test;
import
java.util.*;
public
class Compute {
public static int add(String x, String y) {
int a = 0;
int b = 0;
try {
a = Integer.parseInt(x);
b = Integer.parseInt(y);
}catch(Exception e) {}
return a + b;
}
}
用javac把这段代码编译成功后,下一步就要把函数的签名映射到标签库。
2)将方法映射到TLD表中
配置标记库描述文件,函数描述符
<
function>
< description>add x and y< /description>
< name>add< /name>
< function-class>com.itttop.test.Compute < /function-class>
< function-signature>int
add(java.lang.String,java.lang.String) < /function-signature>
<
/function>
现在我们就可以编写一个JSP页面来使用这个函数。下面的代码示例是包含两个字段的一个表单,用户输入两个数字并按下“求和”按钮,就会调用上面的函数并把两个数相加,结果在同一个页面中显示出来。
3)在JSP页面中调用要引用的Taglib标记,然后就可以在jsp页面中访问了。
代码示例: math.jsp
<
%@ taglib prefix="my" uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib
%>
<
HTML>
< HEAD>
< TITLE>Functions< /TITLE>
< /HEAD>
< BODY>
< H3>Add Numbers< /H3>
< P>
< FORM action="math.jsp"
method="GET">
X = < input type="text" name="x"
value="${param['x']}">
< BR>
Y = < input type="text" name="y"
value="${param['y']}">
< input type="submit" value="Add
Numbers">
< /FORM>
< P>
The sum is: ${my:add(param['x'],param['y'])}
< /BODY>
<
/HTML>
相关推荐
* 简洁的语法:EL 表达式的语法非常简单,易于使用和理解。 * 强大的功能:EL 表达式可以访问和操作 Java 对象的属性,提供了强大的功能。 * 广泛的应用:EL 表达式广泛应用于 JSP、Servlet、JSF 等 Web 开发技术中...
本文将详细解释EL表达式的使用方法及其应用场景,帮助开发者更好地理解和掌握这一技术。 #### EL表达式的基础语法 EL表达式总是用大括号`{}`括起来,并且前面有一个美元符号`$`作为前缀,其基本形式为`${...
### EL表达式的使用方法 #### 一、简介 在Java Web开发中,EL(Expression Language)表达式是一种非常实用的功能,它允许开发者在JSP页面中动态获取对象属性的值或者执行简单的运算操作。通过使用EL表达式,可以...
#### 一、EL表达式的概述与基本使用 EL(Expression Language),即表达式语言,是JavaServer Pages (JSP) 2.0标准的一部分,用于简化JSP页面中对数据访问的操作。它允许开发者通过简单的语法在JSP页面中访问后端...
**EL表达式简介** EL(Expression Language,表达式语言...通过简单使用EL表达式标签,我们可以轻松地在JSP页面中展示和处理数据,实现页面与后台的高效交互。理解和熟练运用EL表达式,对于提升Web开发技能至关重要。
EL表达式的主要目标是提高JSP页面的可读性和可维护性,减少脚本代码的数量。 ### EL表达式的基本语法 EL表达式通常以`$`符号开头,后跟大括号`{}`,如`${expression}`。表达式可以是简单的属性引用,也可以包含...
但同时,了解EL表达式的另一个新特性也很重要,那就是它作为JSP 2.0中的一个主要新特性,为JSP页面提供了表达语言支持,让访问JSP隐含对象和JavaBeans组件变得更为简单和方便。JSTL(JavaServer Pages Standard Tag ...
#### 一、EL表达式的语法结构及使用 EL(Expression Language)是一种简化了的数据访问语言,用于获取JavaBean属性值或调用其方法等操作。其基本语法结构为`${expression}`,这使得开发者能够在JSP页面上以更简洁的...
本资源主要讲解了如何在JSTL中定义和使用自定义的EL表达式,这对于提高JSP页面的可读性和可维护性至关重要。 首先,理解JSTL的基础概念。JSTL由几个核心标签库组成,如fmt、fn、sql、xml等,它们提供了处理日期和...
例如,使用EL表达式和`<c:if>`标签可以实现简单的条件判断: ```jsp ${user != null}"> 用户已登录:${user.name} ``` 综上所述,JSTL和EL是JSP开发中非常重要的工具,它们提供了丰富的功能,使开发者能够更加...
EL表达式的基本语法是 `${expression}`,其中`expression`可以是一个简单的属性引用,也可以是复杂的运算表达式。EL表达式的主要特点包括: 1. **简化的数据访问**:EL表达式可以轻松地访问存储在请求、会话或应用...
在实际应用中,将这些jar包添加到项目的类路径(classpath)中后,开发者就可以在JSP页面中自由地使用EL表达式来访问和操作数据。例如,你可以通过EL表达式 `${user.name}` 获取用户对象的姓名属性,或者使用 `${...
EL表达式的语法结构非常简单,通常采用 `${expression}` 的形式。其中 `expression` 是要计算或获取的表达式。 ##### 2. 运算符 EL提供了两种方式来访问对象的属性:`.` 和 `[]`。这两种方式的区别在于: - 当属性...
### EL表达式详解教程 #### 一、EL表达式的简介 ...通过使用EL表达式,开发者可以减少对JSP Scriptlet的依赖,提高代码的可维护性和扩展性。掌握EL表达式的语法和特性对于Web开发人员来说是非常重要的。
### EL表达式语言详解 #### 9.1 概述 在JSP页面开发中,为了提高代码的可读性和可维护性,开发者们逐渐转向使用标签库来替代传统的Java片段语言来实现页面的显示逻辑。然而,自定义标签虽然灵活,但也容易导致重复...
EL(Expression Language,表达式语言)是Java EE...这些文档应该涵盖了EL表达式的详细语法、常见问题和实例解析,帮助你成为EL表达式使用的专家。学习并熟练掌握EL表达式,对于提升JSP开发的效率和代码质量至关重要。
#### 三、EL表达式的基本使用 1. **在JSTL中的使用** 在JSTL(JavaServer Pages Standard Tag Library)中,EL 表达式通常用于设置标签的属性值。例如,在 `<c:out>` 标签中使用 EL 表达式输出变量的值: ```...
EL表达式的语法结构非常简单,主要形式为`{expression}`。这里`expression`代表具体的表达式,它可以是变量名、方法调用等。 ##### 2. 运算符 EL提供了两种运算符用于访问对象属性: - **`.`**:点运算符,用于...
本篇文章将详细介绍EL表达式中的各种运算符及其用法,包括逻辑运算符、关系运算符、算术运算符等,并通过具体的例子进行说明,帮助读者更好地理解和掌握EL表达式的使用技巧。 #### 二、EL表达式基础 EL表达式通常...
在JSP页面中,EL表达式通常以`${}`包裹,可以用来访问页面作用域、请求作用域、会话作用域或应用作用域的属性,以及执行简单的算术运算、条件判断和方法调用。例如: ```jsp <p>Welcome, ${user.name}! ${user....