EL调用Java方法.pdf
文本预览下载声明
EL 调用 Java 方法
简单来说,我们在一个类中的某个方法,可以使用 EL 进行调用,这个能被 EL 表达式调用的方法称之为 EL 函数,但是这种
方式必须满足以下两点要求:
① 在 EL 表达式中调用的只能是 Java 类的静态方法
② 这个 Java 类的静态方法需要在我们另外在自定义的 TLD 文件中描述
满足以上两点才能被 EL 表达式调用。
语法: ${prefix:方法名(参数列表) }
例 1 :使用EL 函数来实现 HTML 语言的过滤转义
在 web 工程中自定义一个 HTMLFilter 类,同时定义一个静态的 filter 方法:
1 package com.bjpowernode.filter;
2 public class HtmlFilter {
3
4 public static String filter(String message) {
5
6 if (message == null)
7 return (null);
8
9 char content[] = new char[message.length()];
10 message.getChars(0, message.length(), content, 0);
11 StringBuilder result = new StringBuilder(content.length + 50);
12 for (int i = 0; i content.length; i++) {
13 switch (content[i]) {
14 case :
15 result.append(lt;);
16 break;
17 case :
18 result.append(gt;);
19 break;
20 case :
21 result.append(amp;);
22 break;
23 case :
24 result.append(quot;);
1 / 9
25 break;
26 default:
27 result.append(content[i]);
28 }
29 }
30 return (result.toString());
31
32 }
33 }
这个类中的filter 方法能将 HTML语言转换为普通的字符串,当然这个类和方法在Tomcat 中也有示例,路径为【Tomcat】
【webapps】 【examples】 【WEB-INF】 【classes】 【utils】,找到 HTMLFilter.java 就是了。
好了我们已经有静态的方法了,现在需要在 TLD 文件中对这个方法进行描述才能在 JSP 中使用。
TLD 文件需要在 “WEB-INF”文件中创建和定义,在哪里找模板呢,依然可以到 Tomcat 中寻找。在【Tomcat】
【webapps】 【examples】 【WEB-INF】 【jsp2 】中有一个 “jsp2-example-taglib.tld”文件,我们就可以
对这个文件复制其 “首尾”啦。
在 web 工程下建立 “elfunction.tld”文件,从 “jsp2-example-taglib.tld”文件模板中抄首抄尾,其中function标
签也是我们需要的:
1 ?xml version=1.0 encoding=UTF-8 ?
2 taglib xmlns =/xml
显示全部