使用el调用Java方法
1:EL表达式语法允许开发人员开发自定义函数,以调用java类的方法。
~示例:${el:method(params)}
~在EL表达式中调用的只能是java类的静态方法。
~这个java类的静态方法需要在TLD文件中描述,才可以被EL表达式调用。
~EL自定义函数用于扩展EL表达式的功能,可以让EL表达式完成普通java程序代码所能完成的功能。
EL Function开发步骤
一般来说,EL自定义函数开发与应用包括以下三个步骤
(1):编写一个java类的静态方法
(2):编写标签库描述(tld)文件,在tld文件中描述自定义函数。
(3):在JSP页面中导入和使用自定义的el function
下面举个列子:
1.在WebRoot\WEB-INF目录下面建立一个mytag.tld文件。
2.Mytag.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>el</short-name> <function> <!-- 对这个EL方法的描述 --> <description>calculate string length</description> <name>FunctionsEl</name><!-- 调用EL方法的名称 --> <function-class>com.el.code.FunctionsEl</function-class> <function-signature> java.lang.String elEncode(java.lang.String) </function-signature> <example>${el:FunctionsEl(str)}</example><!-- 例如 --> </function> </taglib>
3.在com.el.code包下面新建一个类名为FunctionsEl的类。
package com.gouwu.youboy.util; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; /** * @project XXX * @author : XXX * @version 1.0 * @Create:2011 5:41:27 PM * @Update: * @describe: */ public class FunctionsEl { /** * 对中文进行转码 * @param str 中文字符串 * @return 中文编码过后的的字符串 */ public static String elEncode(String str) { String decodeStr = null; try { decodeStr = URLEncoder.encode(str, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return decodeStr; } }
4.在JSP页面引用如下:
<%@ taglib prefix="el" uri="/WEB-INF/mytag.tld"%> ${el:FunctionsEl(iklist)}
开发EL Function注意事项
~编写完标签库描述文件后,需要将它放置到web应用的WEB-INF目录中或者WEB-INF目录下
的除了class和lib目录之外的任意目录上。
~TLD文件中的<url>元素用制定该TLD文件的URL,在JSP文件中需要通过这个URL来引入该标签库描述文件
~<function>元素用于标签描述,一个EL自定义函数,其中:
<name>子元素用于指定EL自定义函数的名称。
<function-class>子元素用于
el表达式的function标签,布布扣,bubuko.com
原文:http://www.cnblogs.com/plf112233/p/3585035.html