• 自己定义JSTL函数



    因为 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>

    效果例如以下:





  • 相关阅读:
    Vim插件列表
    比nerdtree更好的文件浏览器:vimfiler
    在不同的窗口之间跳转
    unite
    ARMv7 .n和.w指令宽度指示符后缀
    Mybatis之分表设计与分表插入
    thymeleaf之菜单树
    管理后台菜单查询
    Linux下Tomcat重新启动
    网页缓存清除
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/6790001.html
Copyright © 2020-2023  润新知