EL表达式语法允许开发人员开发自定义函数,以调用Java类的方法结构。语法:
${prefix:method(params)}
在EL表达式中调用的只能是Java类的静态方法,这个Java类的静态方法需要在tld文件中描述,才可以被EL表达式调用。
EL自定义函数用于扩展EL表达式的功能,可以让EL表达式完成普通Java程序代码所能完成的功能。
一般来说,EL自定义函数开发与应用包括以下3个步骤:
(1)编写一个Java类的静态方法。
(2)编写标签库描述符(tld)文件,在tld文件中描述自定义函数。
(3)在JSP页面中导入和使用自定义函数。
【例5.3】EL自定义函数。
(1)在ELProject工程的“src”→“com.cn”包下新建ELUtil类,内容如下:
(2)在WEB-INF目录下编写标签库描述符(tld)文件,在tld文件中描述自定义函数。
在Eclipse新建tld文件的步骤是:“New”→“XML”→“XML File”→“输入elFunction.tld”→“Create XML file from a DTD file”→“Select XML Catalog entry”→“-//Sun Microsystems,Inc.//DTD JSP Tag Library 1.2//EN”→“finish”。
(3)在WebContent目录下新建名称为elFunction.jsp的JSP页面,在JSP页面中导入和使用自定义函数。elFunction.jsp内容如下所示:(www.xing528.com)
(4)启动 tomcat,在浏览器的地址栏中输入 http://localhost:8080/ELProject/elFunction.jsp,运行结果如图5.3所示。
图5.3 EL自定义函数
编写完标签库描述文件后,需要将它放置到<web应用>\WEB-INF目录中或WEB-INF目录下的除了classes和lib目录之外的任意子目录中。
tld文件中的<uri> 元素用来指定该tld文件的URI,在JSP文件中需要通过这个URI来引入该标签库描述文件。
<function>元素用于描述一个EL自定义函数,其中:
<name>子元素用于指定EL自定义函数的名称。
<function-class>子元素用于指定完整的Java类名。
<function-signature>子元素用于指定Java类中静态方法的签名,方法签名必须指明方法的返回值类型及各个参数的类型,各个参数之间用逗号分隔。
EL表达式是JSP 2.0规范中的一门技术。因此,若想正确解析EL表达式,需使用支持Servlet2.4/JSP2.0技术的Web服务器。
注意:有些Tomcat服务器如不能使用EL表达式,如:
(1)升级成Tomcat6以上版本;
(2)在JSP中加入<%@ page isELIgnored="false" %>。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。