1.建立java類的靜態函數
package chapter4;public class ELFun {public static String processStr(String s){s = s.replaceAll("<", "<");s = s.replaceAll(">", ">");s = s.replaceAll(" ", "?");return s;}
}
?在WEB-INF目錄中建立一個tld目錄,然后再目錄中建立一個elfun.tld文件
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"version="2.1"><tlib-version>1.0</tlib-version><jsp-version>2.1</jsp-version><description>用于轉換特殊字符</description><uri>myelfun</uri> <!-- 定義URI --><function><name>ps</name><function-class>chapter4.ELFun</function-class><function-signature>java.lang.String processStr(java.lang.String)</function-signature></function> </taglib>
修改web.xml文件,添加如下代碼
<jsp-config><taglib><taglib-uri>/WEB-INF/tld/elfun.tld</taglib-uri><taglib-location>/WEB-INF/tld/elfun.tld</taglib-location></taglib></jsp-config>
建立一個elfun.jsp文件,需要在聲明中導入tld文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/WEB-INF/tld/elfun.tld" prefix="elfun" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head></head><body><input type='text' name='text'/>${elfun:ps("<input type='text' name='text'/>") }</body> </html>
?除了使用tld文件的路徑引用tld文件外,還可以使用在tld文件中定義的url引用tld文件
例如:<%@ taglib uri="elfun" prefix="elfun" %>
但為了避免沖突,url在外發布時最好帶上域名,例如http://www.sun.com/myelfun
如果使用路徑引用tld文件,tld文件可以放到web工程中的任何目錄下,并且無需重新服務器即可生效。
如果使用url來引用tld文件,tld文件必須放到web-inf目錄中或web-inf目錄的子文件中,包括lib和classes目錄,且必須重新服務器或重新發布web工程。