自定義EL表示式方法詳解
阿新 • • 發佈:2019-01-27
在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)}"/>