jsp页面引用: 用taglib指令,引入自定义的EL函数库
1 <%@ taglib prefix="re" uri="http://com.kintech/taglib/regularExpression" %>
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <taglib xmlns="http://java.sun.com/xml/ns/j2ee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" 5 version="2.0"> 6 7 <!-- 标签库的描述 --> 8 <description>写一个支持正则表达式的el函数</description> 9 10 <!-- 定义这个标签库的版本 --> 11 <tlib-version>1.0</tlib-version> 12 13 <!-- taglib指令中prefix需要制定的部分,可以任意写,但是尽可能和文件名保持一致,方便管理。 --> 14 <short-name>Re</short-name> 15 16 <!-- taglib指令中URI需要指定的部分,可以任意写 --> 17 <uri>http://com.kintech/taglib/regularExpression</uri> 18 19 <!-- 一个function结点 就是一个EL自定义函数 --> 20 <function> 21 <description>拼接两个字符串</description> <!--函数的功能描述--> 22 <name>joinSting</name> <!--EL函数名,也就是在JSP页面中使用时的名称,它可以和java代码中的函数名不一样--> 23 <function-class>com.kintech.web.tag.RegularExpressionTag</function-class> <!--函数所在的类 需要绑定的类的全限定名--> 24 <function-signature>java.lang.String Join(java.lang.String,java.lang.String)</function-signature> <!-- 自定义函数签名的完整写法,忽略形参:方法返回类型 方法名 (参数的类型列表...) --> 25 <example>${Re:joinSting(aaa,bbb)}</example> 26 </function> 27 28 <function> 29 <description>过滤特殊字符字符</description> <!--函数的功能描述--> 30 <name>regEx</name> <!--EL函数名,也就是在JSP页面中使用时的名称,它可以和java代码中的函数名不一样--> 31 <function-class>com.kintech.web.tag.RegularExpressionTag</function-class> <!--函数所在的类 需要绑定的类的全限定名--> 32 <function-signature>java.lang.String regEx(java.lang.String)</function-signature> <!-- 自定义函数签名的完整写法,忽略形参:方法返回类型 方法名 (参数的类型列表...) --> 33 <example>${re:regEx(item.showFileName)}</example> 34 </function> 35 36 </taglib>
java:
1 package com.kintech.web.tag; 2 3 import java.util.regex.Matcher; 4 import java.util.regex.Pattern; 5 6 /** 7 * Created by jsj on 2020/3/11. 8 */ 9 public class RegularExpressionTag { 10 11 //自定义EL函数必须用static修饰 12 //实现两个字符串的拼接 13 public static String Join(String source,String target) { 14 return source+target; 15 } 16 17 public static String regEx(String target){ 18 // 只允许字母和数字 19 // String regEx ="[^a-zA-Z0-9]"; 20 // 清除掉所有特殊字符 21 String regEx="[`~!@#$%^&*()+=|{}':;',\[\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"; 22 Pattern p = Pattern.compile(regEx); 23 Matcher m = p.matcher(target); 24 return m.replaceAll("").trim(); 25 } 26 }
在jsp页面的引用: ${Re:joinSting(参数1,参数2)}
最后再来看一下我项目里面的目录结构: