天天看点

自定义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,如需转载请自行联系原作者