天天看點

自定義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>

效果如下:

自定義JSTL函數