封装自定义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("\"", ""e;").replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">");//替换 txt=txt.replaceAll("\n", "</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>