自定义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

 

posted @ 2019-09-20 18:44  小帅学java  阅读(14)  评论(0)    收藏  举报