自定義EL表達式方法
大家在編寫jsp的時候相信大家都會使用到EL表達式語言,可是我們還是會遇到不友善的時候,比如連接配接兩個字元串,在java中我們可以這樣寫 [ String str = “str1”+”str2”; ]這絕對沒有問題,可是如果使用EL表達式語言,那就麻煩了,你如果寫成這樣[ ${‘str1’ + ‘str2’} ] EL會認為你是想進行加法運算….那麼頁面就抛出了異常,可是有這種需求(連接配接字元串)該怎麼辦呢?
我們必須先要建立一個java類檔案,
<b>public</b> <b>class</b> ELFuncUtil {
然後建立一個公有的靜态的方法方法
/**
*
* <pre>
* 建立人: 王濤
* 建立于: Aug 27, 2007
* 描 述:
* EL方法用于連接配接兩個字元串
* </pre>
* <b>@param</b> str1
* <b>@param</b> str2
* <b>@return</b>
*/
<b>public</b> <b>static</b> String append(String str1, String str2) {
<b>return</b> str1 + str2;
}
這個方法很簡單就是将兩個參數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.tianjin.canic.tjeg.utils.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頁面中要這麼寫
<%@ taglib prefix="elf" uri="/WEB-INF/elfunc.tld"%>
使用的時候這樣寫 ${elf:append(str1, str2)} 自動就會傳回一個連接配接好的字元串
如: <c:out value="${elf:append(param.str1, param.str2)}"/>
本文轉自 tony_action 51CTO部落格,原文連結:http://blog.51cto.com/tonyaction/42348,如需轉載請自行聯系原作者