2024年4月19日发(作者:)
EL调用Java方法
简单来说,我们在一个类中的某个方法,可以使用EL进行调用,这个能被EL表达式调用的方法称之为EL函数,但是这种
方式必须满足以下两点要求:
① 在EL表达式中调用的只能是Java类的静态方法
② 这个Java类的静态方法需要在我们另外在自定义的TLD文件中描述
满足以上两点才能被EL表达式调用。
语法: ${prefix:方法名(参数列表) }
例1:使用EL函数来实现HTML语言的过滤转义
在web工程中自定义一个HTMLFilter类,同时定义一个静态的filter方法:
1 package ;
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[()];
10 rs(0, (), content, 0);
11 StringBuilder result = new StringBuilder( + 50);
12 for (int i = 0; i < ; i++) {
13 switch (content[i]) {
14 case '<':
15 ("<");
16 break;
17 case '>':
18 (">");
19 break;
20 case '&':
21 ("&");
22 break;
23 case '"':
24 (""");
1 / 9
25 break;
26 default:
27 (content[i]);
28 }
29 }
30 return (ng());
31
32 }
33 }
这个类中的filter方法能将HTML语言转换为普通的字符串,当然这个类和方法在Tomcat中也有示例,路径为【Tomcat】
--->【webapps】--->【examples】--->【WEB-INF】--->【classes】--->【utils】,找到就是了。
好了我们已经有静态的方法了,现在需要在TLD文件中对这个方法进行描述才能在JSP中使用。
TLD文件需要在“WEB-INF”文件中创建和定义,在哪里找模板呢,依然可以到Tomcat中寻找。在【Tomcat】--->
【webapps】--->【examples】--->【WEB-INF】--->【jsp2】中有一个“”文件,我们就可以
对这个文件复制其“首尾”啦。
在web工程下建立“”文件,从“”文件模板中抄首抄尾,其中
签也是我们需要的:
1
2 3 xmlns:xsi="/2001/XMLSchema-instance" 4 xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-jsptaglibrary_2_" 5 version="2.0"> 6 7 8 2 / 9


发布评论