封装自定义EL函数

步骤:

1.新建静态类

2.在WEB.XML文件中配置.tld文件,并导入jar包

3.在JSP页面内导入并且使用

实例:

1.新建静态类

package maya;

public class HtmlShow {
    public static String transfer(String txt,String cssClass){
        txt=txt.replaceAll(""", "&quote;").replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");//替换
        txt=txt.replaceAll("
", "</p><p class='"+cssClass+"'>");//替换
        txt="<p class='"+cssClass+"'>"+txt+"</p>";
        return txt;
    }
}

2.在WEB.INF文件中配置.tld文件,并导入jstl-1.2.jar包

在WEB.INF文件中新建.xml文件,扩展名改为.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">
  <description>自定义函数</description>//可自定义描述
  <display-name>我的EL函数</display-name>//自定义显示名
  <tlib-version>1.1</tlib-version>
  <short-name>my</short-name>//自定义缩写
  <uri>http://www.itnba.com/maya/myel</uri>//自定义uri

  <function>
    <description>
          把文本的显示内容改成网页的显示内容
    </description>
    <name>transfer</name>//静态类的方法名
    <function-class>maya.HtmlShow</function-class>//包-类的路径
    <function-signature>String transfer(java.lang.String, java.lang.String)</function-signature>
    <example>
      
    </example>
  </function>  
</taglib>

3.在JSP页面内导入并且使用

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="my" uri="http://www.itnba.com/maya/myel" %>//配置自定义的EL
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>hehe</h1>
${my:transfer("<h1>hehe</h1>","tt") }//调用格式${xx:xxx}
</body>
</html>

 运行结果:

hehe

<h1>hehe</h1>

原文地址:https://www.cnblogs.com/jonsnow/p/6393616.html