自定义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)}"/>



你可能感兴趣的:(el表达式)