自定义JSTL函数

来源:互联网 发布:数控切割机用u盘编程 编辑:程序博客网 时间:2024/05/16 12:24


由于 jstl 函数 字符串替换不支持正则表达式 所以想用java String的 replaceAll进行替换

需要自定义 jstl函数


首先写类

package com.salesmanb2b.el;//自定义el函数public class MyJstl {/** * 支持正则表达式的替换 * @param orgStr 原始的字符串 * @param regex 用来匹配的正则表达式 * @param replacement 替换的文本 * @return */public static String repalceAll(String orgStr,String regex, String replacement){return orgStr.replaceAll(regex, replacement);}}


然后在web-info 下创建对应的tld文件  MyJstl.tld

<?xml version="1.0" encoding="UTF-8"?><taglib version="2.0" 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 web-jsptaglibrary_2_0.xsd"> <tlib-version>1.0</tlib-version> <short-name>mj</short-name> <uri>/mj</uri>  <function>          <name>repalceAll</name>          <function-class>com.salesmanb2b.el.MyJstl</function-class>          <function-signature>java.lang.String repalceAll(java.lang.String,java.lang.String,java.lang.String)</function-signature>      </function>              </taglib>


填写 short-name  和 uri


以及 funciton 的 信息


最后 在 jsp页面中加入

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="mj" uri="/WEB-INF/MyJstl.tld"  %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>       <title>jstl 自定义函数</title>   </head>    <body>     ${mj:repalceAll('lllove','(l)+(.+)','$1$2') }  </body></html>

效果如下:





0 0