zoukankan      html  css  js  c++  java
  • 自己封装EL函数

    封装EL函数:

    第一步,做一个类,静态方法

    public class Html {
        public static String transfer(String txt, String cssClass){
            //把输入的,&,<>,都给替换后显示出来
            txt = txt.replaceAll(""", "&quote;" ).replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;"); 
            //
    换为p标签,cssclass添加的样式表
            txt = txt.replaceAll("
    ", "</p><p class'"+cssClass+"'>");
            txt = "<p class'"+cssClass+"'>"+txt+"</p>";
            
            return txt;
        }
    }

    第二步,配置,手动写一个标签描述文件。

    在WEB-INF文件夹中新建一个XML.File文件,扩展名更改为tld,选择XML template,完成创建。

     

    taglib是根元素,内容写在<taglib>。。。。</taglib>中间

    <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>my el function</display-name>     显示
    <tlib-version>1.0</tlib-version>    版本
    <short-name>fn</short-name>        约定fn就可以
    <uri>http://itnba.com/maya/myel</uri>     只是一个唯一标识,引用
      <description>自定义函数</description>               
      <display-name>my el function</display-name>       
      <tlib-version>1.0</tlib-version>            
      <short-name>fn</short-name>                       
      <uri>http://itnba.com/maya/myel</uri>         

    后面写对html的配置<function>。

    <description>把文本的显示内容改成网页的显示内容</description>     内容描述
    <name>transfer</name>     在html中使用的名
    <function-class>com.itnba.maya.myel.Html</function-class>     com.itnba.maya.myel是第一步做的类的包名,Html是类名 
    <function-signature>string transfer(java.lang.String, java.lang.String)</function-signature>   代表函数是一个什么样的函数,string是返回类型,transfer是函数名,()中是参数
    <example></example>例如可以省略
      <function>
        <description>
              把文本的显示内容改成网页的显示内容
        </description>                      
        <name>transfer</name>     
        <function-class>com.itnba.maya.myel.Html</function-class>                                              
        <function-signature>string transfer(java.lang.String, java.lang.String)</function-signature> 
        <example>
          //例如能省略
        </example>
      </function>
      
    </taglib> 

    第三步,现在就可以引用自己封装好的el函数了。

    先导一下写好的el函数,

    prefix是在${}中用的名,uri是第二步配置中的那个唯一标识

    <%@ taglib prefix="html" uri="http://itnba.com/maya/myel"%>  

    然后写两行同样的代码作为比较,

    <h1>haha</h1>
    ${html:transfer("<h1>haha</h1>","aaa") }

     第一行应该显示为一号标题的haha,第二行加入自己写的el函数,应该把<>进行替换,把“”中的内容全部显示出来,如下图;



  • 相关阅读:
    MySQL视图更新
    JavaScript经典作用域问题
    进程间通信的几种方式
    Vue(MVVM)、React(MVVM)、Angular(MVC)对比
    CDN(Content Delivery Network)技术原理概要
    单点登录实现原理(SSO)
    composer 实现自动加载原理
    PHP 反射的简单使用
    php7安装php-redis扩展
    Git 简单入门(二)
  • 原文地址:https://www.cnblogs.com/liyh123/p/6394006.html
Copyright © 2011-2022 走看看