EL表达式---自定义函数(转)
有看到一个有趣的应用了,转下来,呵呵!!
1.定义类MyFunction(注意:方法必须为 public static)
package com.tgb.jstl; /** * JSTL标签中的自定义函数库实现类 * */ public class MyFunctions { public static String sayHello(String name){ return "Hello " + name; } }
2.提供tld描述文件,此文件可以放到WEB-INF下或其目录下.
<?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"> <description>myFunctions library</description> <display-name>JSTL functions</display-name> <tlib-version>1.1</tlib-version> <!--这里的所谓“简称”,可以随便写--> <short-name>mfn</short-name> <!--这里的uri,可以随便写--> <uri>http://www.tgb.com/functions</uri> <function> <!--这里name可以随便写--> <name>say</name> <!--这里最为重要,指定类所在位置,以及类方法的一些重要信息--> <function-class>com.tgb.jstl.MyFunctions</function-class> <function-signature>java.lang.String sayHello(java.lang.String)</function-signature> </function> </taglib>
3.在jsp页面中采用taglib引入函数库
<%@ taglib uri="http://www.tgb.com/functions" prefix="mfn" %>
4.在el表达式中采用前缀+冒号+函数名称使用
调用函数库相关函数,需要配合el表达式来使用。
${mfn:say("Tom") } <<---"Tom"可改为从EL表达式中取值