目录
第一步:创建自定义EL函数的实现类
package com.niu;
public class ELFunctions {
//自定义EL函数必须用static修饰
//实现两个字符串的拼接
public static String Join(String source,String target) {
return source+target;
}
}
第二步:注册自定义EL函数
1:在WEB-INF目录下创建自定义tld文件
例如:Myfuns.tld
2:绑定约束文件
1.找到tomcat-9.0.8\webapps\examples\WEB-INF\jsp2目录
2.打开jsp2-example-taglib.tld文件
3.复制以下内容 (已实际版本文件内容为准):
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
</taglib>
4.在<taglib></taglib>标签体内复制以下头部内容
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<!-- 标签库的描述 -->
<description>A tag library exercising SimpleTag handlers.</description>
<!-- 标签库的版本号 -->
<tlib-version>1.0</tlib-version>
<!-- taglib指令中prefix需要制定的部分,可以任意写,但是尽可能和文件名保持一致,方便管理。 -->
<short-name>Fun</short-name>
<!-- taglib指令中URI需要指定的部分,可以任意写 -->
<uri>http://tomcat.apache.org/jsp2-example-taglib</uri>
</taglib>
5.在头部以下复制以下内容来注册第一步时创建的静态方法。
<!-- 自定义函数标签 -->
<function>
<!-- 自定义函数描述 -->
<description>Converts the string to all caps</description>
<!-- 在使用EL表达式时使用的函数名 -->
<name>join</name>
<!-- 自定义函数需要绑定的Class的全名 -->
<function-class>com.niu.ELFunctions</function-class>
<!-- 自定义函数签名的完整写法,忽略形参:方法返回类型 方法名 (参数的类型列表...) -->
<function-signature>java.lang.String Join( java.lang.String,java.lang.String )</function-signature>
</function>
第三步:引用tld文件并使用自定义EL函数
1:引用tld文件
在JSP页面头部用<%@ taglib %>指令引用刚才的tld文件如下:
<%@ taglib uri="http://tomcat.apache.org/jsp2-example-taglib" prefix="Fun" %>
2:使用自定义EL函数
到这里为止,就可以在JSP的任意位置使用刚才自定义的EL函了。
${Fun:join("123","abc")}
在页面的对应位置将会出现 “123abc”。