EL自定义函数的创建过程(超详细,一步到位)

目录

第一步:创建自定义EL函数的实现类

第二步:注册自定义EL函数

1:在WEB-INF目录下创建自定义tld文件

2:绑定约束文件

第三步:引用tld文件并使用自定义EL函数

1:引用tld文件

2:使用自定义EL函数


第一步:创建自定义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”。

 

猜你喜欢

转载自blog.csdn.net/GeekYoung/article/details/81531858
今日推荐