- EL脚本语言的配置和支持:
对于一个单个JSP页面,你可以使用定义page指令来设置jsp页面是否支持EL。默认是支持EL(如果要页面不支持EL,请设置为isELIgnored=true;<%@ page isELIgnored="true|false"%> 对于整个JSP应用程序,要修改WEB.XML配置(tomcat5.0.16默认是支持EL的);
<jsp-property-group></jsp-property-group>?
<description> For config the ICW sample application </description>
<display-name>JSPConfiguration</display-name>
<url-pattern>/jsp/datareset.jsp</url-pattern>
<el-ignored>true< /<ccid_code> el-ignored>
<page-encoding>ISO-8859-1</page-encoding>
<include-prelude>/jsp/prelude.jspf</include-prelude>
<include-coda>/jsp/coda.jspf</include-coda>
</ccid_code></el-ignored> - 算术运算符演示:
以下是EL运算符列表,其中empty可以检查某个值是否为空运算符 说明 运算符 说明 +
加
> 或 gt 大于 -
减
<= 或 le 小于等于 *
乘
>= 或 ge 大于等于 / 或 div
除
&& 或 and 逻辑与 % 或 mod
模(求余)
|| 或 or 逻辑或 == 或 =
等于
! 或 not 逻辑非 != 或 !=
不等于
empty 检查是否为空值 < 或 lt
小于
a ? b : c 条件运算符 EL表达式使用简单,在网页中"${}"表示是EL表达式。${1+1} 显示为 2
EL算术表达式 运算结果 EL 关系运算表达式 运算结果 ${1} 1 ${1 < 2} true ${1 + 2} 3 ${1 lt 2} true ${1.2 + 2.3} 3.5 ${1 > (4/2)} false ${-4 - 2} -6 ${4.0 >= 3} true ${21 * 2} 42 ${4.0 ge 3} true ${10%4} 2 ${100.0 eq 100} true ${10 mod 4} 2 ${(10*10) != 100} false ${(1==2) ? 3 : 4} 4 ${(10*10) ne 100} false - 隐含对象数据演示:
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 ?
定义和使用函数
表达式语言允许你定义可在表达式中调用的函数。函数必须作为public类中的public static方法编写。同时要将文件映射到TLD标志库文件中。
为了说明函数的使用,我们举一个简单的例子,把两个数相加。首先要编写求两数之和的Java方法代码,如代码示例3所示,这里定义了一个静态方法,它接收两个字符串参数,把它们解析成整数并返回它们的和。
示例文件:Compute.java
package jsp2.examples.el;
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把这段代码编译成功后,下一步就要把函数的签名映射到标签库。代码示例4说明了如何把add函数映射到包含函数实现和函数签名的类。后面将说明把这段代码添加到哪儿。
配置标记库描述文件 函数描述符
<function> <description>add x and y</description> <name>add</name> <function-class>jsp2.examples.el.Compute
</function-class> <function-signature>int
add(java.lang.String,java.lang.String)
</function-signature> </function>现在我们就可以编写一个JSP页面来使用这个函数。代码示例5是包含两个字段的一个表单,用户输入两个数字并按下“求和”按钮,就会调用上面的函数并把两个数相加,结果在同一个页面中显示出来。
代码示例5: math.jsp
<%@ taglib prefix="my"
uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib %>Functions
Add Numbers
Y =The sum is: ${my:add(param["x"],param["y"])}
Tomcat 5 对JSP2.0 支持的新功能介绍
最新推荐文章于 2025-08-15 09:41:23 发布