1. 程式人生 > >自定義EL表示式方法詳解

自定義EL表示式方法詳解

在java中我們連線字串可以直接這樣寫String str=str1+str2,在jsp中用el表示式的話${1+2}結果為3,而${'xxx'+'xxx'}是錯的,因為el把它做運算了,會丟擲異常java.lang.NumberFormatException: For input string: "xxx",但很多時候我們可能會有這樣的需求,所以以下簡單介紹下自定義el表示式的寫法。

 首先建一個java類ElFuncUtil,類中有靜態 方法,其功能為返回兩個引數相加後的字串。

/**
 * Class Description:
 * 
 * @author yjde
 */
public class ELFuncUtil {
	/**
	 * EL方法用於連線兩個字串
	 * 
	 * @param str1
	 * @param str2
	 * @return
	 */
	public static String append(String str1, String str2) {
		return str1 + str2;
	}
}

接著寫個tld檔案elfunc.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 [url]http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd[/url]"
	version="2.0">
	<tlib-version>1.0</tlib-version>
	<short-name>elf</short-name>
	<function>
		<description>用於連線兩個字串</description>
		<name>append</name>
		<function-class>com.ourpalm.mis.common.util.ELFuncUtil
		</function-class>
		<function-signature>java.lang.String append(java.lang.String,java.lang.String)</function-signature>
		<example>${elf:append(str1, str2)}</example>
	</function>
</taglib> 
    

最 後我們就可以直接在jsp中用我們 我們自定義的el表示式了,在使用前別忘了在jsp中匯入tld。

<%@ taglib prefix="elf" uri="/WEB-INF/tlds/elfunc.tld"%>
<c:out value="${elf:append(param.str1, param.str2)}"/>