EL表达式自定义方法

EL表达式自定义方法:(只能支持静态方法的调用)

        1.编写一个普通类,提供一个实现功能的静态方法

        2.在WEB-INF目录下创建一个扩展名为.tld的xml文件,文件不能放在lib和classes目录下

        3.在jsp页面中使用taglib指令引入外部的标签库/方法库

第一步:编写一个普通类

public class MyFunction {

	
	public static String toUpperCase(String str){
		return str.toUpperCase();
	}
}

第二步:创建一个tld文件,进行相关配置(apache-tomcat-7.0.67\apache-tomcat-7.0.67\webapps\examples\WEB-INF\jsp2\jsp2-example-taglib.tld)

<?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>
	<!-- 使用的短名称,对应的是taglib指令中的prefix -->
	<short-name>myfun</short-name>
	<!-- uri:把当前的方法库绑定到一个uri地址上,在该网址上不一定存在方法库 -->
	<uri>http://www.scong.com/functions/function1</uri>
	<function><!-- 自定义方法 -->
		<name>toUpperCase</name><!-- 方法的名称,是jsp页面上使用的名称 -->
		<function-class>function.MyFunction</function-class><!-- 指定执行的类 -->
		<!-- 指定执行的方法,方法名称必须和类中的方法名称保持一致
			注意:当方法有参数和返回值时:参数和返回值必须写类全名(除了基本数据类型) -->
		<function-signature>java.lang.String toUpperCase(java.lang.String) </function-signature>
	</function>
</taglib>

第三步:使用EL表达式自定义方法

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.scong.com/functions/function1" prefix="myfun" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EL表达式自定义方法</title>
	
  </head>
  
  <body>
    <%--EL表达式:只能调用静态方法 --%>
    ${myfun:toUpperCase("abcdef") }
  </body>
</html>

猜你喜欢

转载自blog.csdn.net/ScongHW/article/details/81168235