欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

EL表达式自定义方法

程序员文章站 2022-04-07 21:00:49
...

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>

 

相关标签: EL表达式