函数的定义和使用分为3个步骤:
1.编写一个Java类,并在该类中编写共用的静态方法,用于实现自定义的EL函数的具体功能
package beans;
public class StringDeal {
public static String shiftEnter(String str) { // 定义公用的静态方法
String newStr = str.replaceAll("\r\n", "<br>"); // 替换回车换行符
newStr = newStr.replaceAll(" ", " ");// 替换空格符
return newStr;
}
}
2、编写标签库描述文件,对函数进行声明。该文件的扩展名为.tld,被保存到Web应用的WEB-INF文件夹下
<?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">
<tlib-version>1.0</tlib-version>
<uri>/stringDeal</uri>
<function>
<name>shiftEnter</name>
<function-class>com.wgh.StringDeal</function-class>
<function-signature>java.lang.String shiftEnter(java.lang.String)
</function-signature>
</function>
</taglib>
- <uri>标记:用于指定tld文件的映射路径,在应用该标记指定的内容
- <name>标记:用于指定EL函数所对应方法的方法名,通常与java文件中的方法名相同
- <fuction-class>标记:用于指定EL函数所对应的Java文件,需要包括包名和类名。
- <function-signature>标记:用于指定EL函数所对应的静态方法,这里包括返回值的类型和入口参数的类型,在指定这些类型时,需要使用完整的类型名
3、在JSP文件中引用标签库,并调用定义的EL函数。实现相应的功能。
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="UTF-8"%>
<%@ taglib uri="/stringDeal" prefix="wghfn" %>
<%request.setCharacterEncoding("UTF-8"); %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My JSP 'deal.jsp' starting page</title>
</head>
<body>
内容为:<br>
${wghfn.shiftEnter(param.content)}
</body>
</html>