第一步:TLD函數定義:
首先在專案檔夾下的WEB-INF檔案夾下面見一個function-taglib.tld檔案
該檔案實際上一個xml描述檔案,內容如下:
<?xml version="1.0" encoding="utf-8" ?>
<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 web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>A taglib to define some EL accessible functions.</description>
<tlib-version>1.0</tlib-version>
<short-name>ELFunctionTaglib</short-name>
<uri>ELFunctionTagLibrary</uri>
<function>
<description>Exposes the abs() function from java.lang.Math package</description>
<name>abs</name>
<function-class>java.lang.Math</function-class>
<function-signature>int abs(int)</function-signature>
</function>
</taglib>
上面的代碼意思是:
建立一個el函數標籤庫, <uri>ELFunctionTagLibrary</uri>表示在jsp的taglib中的uri<@taglib prefix=''ef"
uri="ELFunctionTagLibrary" >
如果要定義el自訂函數:則使用
<function>
<description>這裡添加描述</description>
<name>這裡是函數的名字</name>
<function-class>這裡是實現函數的類</function-class>
<function-signature>這裡是函數的簽名</function-signature>
</function>
如果需要添加別的函數,在按照如上格式加入tld檔案中即可。
第二步:EL函數的使用:
建意test.jsp頁面,代碼如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="ef" uri="ELFunctionTagLibrary" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EL Function!</title>
</head>
<body>
${ef:abs(-7) }
</body>
</html>
說明:用於映射的函數的命名空間是ef,這個命名空間有以下<taglib>指令定義:
<%@taglib prefix="ef" uri="ELFunctionTagLibrary" %>、
abs()函數由test.jsp中的下列代碼調用:
${ef:abs(-7) }
表示對-7取絕對值。