- 首先需要定义一个处理的类.class
- 在标签库中定义一个描述文件,并将其保存在WEB-INF文件夹下面
- <uri>标记:用于指定tld文件的映射路径。在引用EL函数时,需要使用该标记指定内容。
- <name>标记:用于指定EL函数所对应的Java文件,这里需要包括包名和类名
- <function-class>标记:用于指定EL函数所对应的静态方法,这里包括返回值的类型和入口参数的类型。在指定这些类型时,需要使用完整的类型名。
- <function-signature>标记:用于指定EL函数所对应的静态方法,这里包括返回值的类型和入口参数的类型。在指定这些类型时,需要使用完整的类型名。
- 前台jsp页面的引用
- 实例:
package com.util;
public class StringDeal {
public static String shiftEnter(String string){
String newString = string.replace("\r\n", "<br>");
newString = newString.replace(" ", " ");
return newString;
}
}
编写标签库的描述文件,将其保存在web-inf文件夹下,使用new,新建tld文件。注意选择的version和jspversion,如图
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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">
<tlib-version>1.0</tlib-version>
<uri>/stringDeal</uri>
<function>
<!-- 调用的函数名称-->
<name>shiftEnter</name>
<!-- 调用的类java-->
<function-class>com.util.StringDeal</function-class>
<!-- 调用的函数的参数类型,和函数返回值类型-->
<function-signature>java.lang.String shiftEnter(java.lang.String)</function-signature>
</function>
</taglib>
之后在JSP页面中使用EL表达式,使用这个java文件的函数即可
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- 注意下面这行,的uri使用的是tld中的url,而perfix是对象 -->
<%@ taglib uri="/stringDeal" prefix="sd"%>
<meta charset="utf-8">
<html>
<body>
<%request.setCharacterEncoding("utf-8"); %>
<!-- EL表达是中的函数使用,StringDeal中的shiftEnter函数 -->
${sd:shiftEnter(param.content) }
</body>
</html>