1. 实现函数类

JSTL对函数类没有任何要求,只要求方法类是公开的,方法必须是静态的、公用的方法。下面是这个函数实现的代码,把它编译后放到 WEB-INF\classes\demo 目录下。

package demo;
/**
* 用于JSTL的函数类
* @author Winter Lau
*/
public class EmailFunction {
/**
* 转换EMAIL地址为链接的形式
* @param email
* @return
*/
public static String emailLink(String email){
StringBuffer sb = new StringBuffer();
sb.append("
sb.append(email);
 
  
 
sb.append("\">");
 
  
 
sb.append(email);
 
  
 
sb.append("
 
 "); 
 
return sb.toString();
}
}

2. 描述文件

接下来我们必须通知JSTL怎么来使用这个函数,跟标签库一样,我们必须编写一个tld文件,姑且把文件名叫做email.tld,该文件存放在{webapp}/WEB-INF目录下,该文件中包含对该函数的说明,文件如下:

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">
Demo
Email functions
1.1

mail

 http://www.javayou.com/dev/jsp/jstl/mail

用于将电子邮件转成链接形式

emailLink

demo.EmailFunction

java.lang.String emailLink(java.lang.String)

${mail:emailLink("javayou@gmail.com")}

3. 测试页面

万事俱备,接下来就是这个测试页面了,页面的代码如下

Click ${em:emailLink("javayou@gmail.com")} to feedback.

打开浏览器运行该页面,显示的结果如下:

Click javayou@gmail.com to feedback.