大家在编写jsp 的时候相信大家都会使用到EL 表达式语言, 可是我们还是会遇到不方便的时候, 比如连接两个字符串, 在java 中我们可以这样写 [ String str = “ str1 ” + ” str2 ” ; ] 这绝对没有问题, 可是如果使用EL 表达式语言, 那就麻烦了, 你如果写成这样[ ${ ‘ str1 ’ + ‘ str2 ’ } ] EL 会认为你是想进行加法运算 … . 那么页面就抛出了异常, 可是有这种需求( 连接字符串) 该怎么办呢?
我们必须先要建立一个java 类文件, 然后建立一个公有的静态的方法方法
public class ELFuncUtil {
/**
*
* <pre>
* 创建人: 王涛
* 创建于: Aug 27, 2007
* 描 述:
* EL方法用于连接两个字符串
* </pre>
*
* @param str1
* @param str2
* @return
*/
public static String append(String str1, String str2) {
return 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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" 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>
注:int型直接写成int就行
然后在jsp 页面中要这么写
<%@ taglib prefix = "elf" uri = "/WEB-INF/elfunc.tld" %>
使用的时候这样写
${elf:append(str1, str2)}
自动就会返回一个连接好的字符串
如: <c:out value="${elf:append(param.str1, param.str2)} "/>