天天看點

自定義EL表達式方法

自定義EL表達式方法

大家在編寫jsp的時候相信大家都會使用到EL表達式語言,可是我們還是會遇到不友善的時候,比如連接配接兩個字元串,在java中我們可以這樣寫  [ String str = “str1”+”str2”;  ]這絕對沒有問題,可是如果使用EL表達式語言,那就麻煩了,你如果寫成這樣[  ${‘str1’ + ‘str2’}  ] EL會認為你是想進行加法運算….那麼頁面就抛出了異常,可是有這種需求(連接配接字元串)該怎麼辦呢?

我們必須先要建立一個java類檔案,

<b>public</b> <b>class</b> ELFuncUtil {

然後建立一個公有的靜态的方法方法

/**

     *

     * &lt;pre&gt;

     * 建立人: 王濤

     * 建立于: Aug 27, 2007

     * 描 述:

     *    EL方法用于連接配接兩個字元串

     * &lt;/pre&gt;

     * <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

檔案内容是這樣的

&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;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"&gt;

    &lt;tlib-version&gt;1.0&lt;/tlib-version&gt;

&lt;short-name&gt;elf&lt;/short-name&gt;

&lt;function&gt;

       &lt;description&gt;用于連接配接兩個字元串&lt;/description&gt;

       &lt;name&gt;append&lt;/name&gt;

       &lt;function-class&gt;com.tianjin.canic.tjeg.utils.ELFuncUtil&lt;/function-class&gt;

       &lt;function-signature&gt;java.lang.String append(java.lang.String,java.lang.String)&lt;/function-signature&gt;

       &lt;example&gt;${elf:append(str1, str2)}&lt;/example&gt;

    &lt;/function&gt;

&lt;/taglib&gt;

然後在jsp頁面中要這麼寫

&lt;%@ taglib prefix="elf" uri="/WEB-INF/elfunc.tld"%&gt;

使用的時候這樣寫   ${elf:append(str1, str2)} 自動就會傳回一個連接配接好的字元串

如: &lt;c:out value="${elf:append(param.str1, param.str2)}"/&gt;

本文轉自 tony_action 51CTO部落格,原文連結:http://blog.51cto.com/tonyaction/42348,如需轉載請自行聯系原作者