EL(表达式语言)除了可以使用基本的运算符外,还可以使用自定义函数开增强EL的功能。
1. 编写函数处理类:
package com.huey.el;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @version 2013-08-16
* @author Huey2672
*
* 自定义函数处理类
* 函数处理类就是一个普通的类,类中包含若干个静态方法,每个静态方法都可以定义成一个函数。
* 完全可以直接用一个JDK或其他已经提供好的类,只要该类包含静态方法即可。
*/
public class MyELFunction {
/**
* 获取当前时间
* @return 当前时间的字符串表示
*/
public static String getCurrentTime() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
return sdf.format(new Date());
}
}
2. 在.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>
<!-- 标签库的默认短名,通常对程序影响也不大 -->
<short-name>mytaglib</short-name>
<!-- 指定标签库的URI,相当于标签库的唯一标识 -->
<uri>http://www.huey.com/mytaglib</uri>
<!-- 每个function元素定义一个函数 -->
<function>
<!-- 指定函数名 -->
<name>getCurrentTime</name>
<!-- 指定函数处理类 -->
<function-class>com.huey.el.MyELFunction</function-class>
<!-- 指定函数的实现方法 -->
<function-signature>String getCurrentTime()</function-signature>
</function>
</taglib>
3. 在JSP页面中使用:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<!-- 导入标签库 -->
<%@taglib uri="http://www.huey.com/mytaglib" prefix="mytaglib"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My EL Function</title>
</head>
<body>
${mytaglib: getCurrentTime()}
</body>
</html>