在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)}"/>

被折叠的 条评论
为什么被折叠?



