自定义EL函数小结
自定义函数,需要在一个拓展名为.tld的xml文件中进行注册,XML文件是需要约束的,即需要配置文件头部.这个头部约束可以从以下文件中进行复制:在Tomcat安装目录下例如:Tomcat\apache-tomcat-9.0.21\webapps\examples\WEB-INF\jsp2, 文件为jsp2-example-taglib.tld, 这个.tld的XML文件,需要定义在当前web项目的WEB-INF目录下
但是现在已经有了一套jstl的EL函数库,就不用自己去创建tld文件了,jar包可以去官网上下.
举例:定义一个小写转化为大写的函数:
package cn.ls.funtion;
public class ELFuntions {
public static String lowerToUpper(String source) {
return source.toUpperCase();
}
}
然后再WEB-INF下建立一个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
http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<!--定义标签库信息 -->
<tlib-version>1.0</tlib-version>
<short-name>myFt</short-name>
<uri>http://tomcat.apache.org/jsp2-example-taglib</uri>
<!-- 注册函数 -->
<function>
<name>lowerToUpper</name>
<function-class>cn.ls.funtion.ELFuntions</function-class>
<function-signature>java.lang.String lowerToUpper( java.lang.String )</function-signature>
</function>
</taglib>
最后建立一个jsp文件去使用函数
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://tomcat.apache.org/jsp2-example-taglib" prefix="myFt"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
${myFt:lowerToUpper("abc")}<br>
<%
String username="ls";
pageContext.setAttribute("username", username);
%>
${myFt:lowerToUpper(username) }
</body>
</html>
输出结果为 ABC
LS

浙公网安备 33010602011771号