• EL和自定义函数库


    问题:在数据显示的时候经常需要调用一些方法对需要显示的数据进行基本的处理,如:

    数据过滤、求子串等操作。那么就需要使用EL表达式进行快速的函数调用。

    1. 引入HTMLFilter.java类
    2. 描述为函数

    2.1 在WEB-INF中创建一个myfun.tld文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
     3   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
     5   version="2.0">
     6   <tlib-version>1.0</tlib-version>
     7   <short-name>jnb</short-name>
     8   <function>
     9     <name>filter</name>
    10     <function-class>cn.itcast.utils.HTMLFilter</function-class>
    11     <function-signature>java.lang.String filter(java.lang.String)</function-signature>
    12   </function>
    13 </taglib>  
    类 cn.itcast.utils.HTMLFilter
     1 public final class HTMLFilter {
     2     public static String filter(String message) {
     3         if (message == null)
     4             return (null);
     5         char content[] = new char[message.length()];
     6         message.getChars(0, message.length(), content, 0);
     7         StringBuffer result = new StringBuffer(content.length + 50);
     8         for (int i = 0; i < content.length; i++) {
     9             switch (content[i]) {
    10             case '<':
    11                 result.append("&lt;");
    12                 break;
    13             case '>':
    14                 result.append("&gt;");
    15                 break;
    16             case '&':
    17                 result.append("&amp;");
    18                 break;
    19             case '"':
    20                 result.append("&quot;");
    21                 break;
    22             default:
    23                 result.append(content[i]);
    24             }
    25         }
    26         return (result.toString());
    27 
    28     }
    29 }

    1.2    引入函数库

    %@taglib uri="/WEB-INF/myfuns.tld" prefix="jnb"%

    1.3    使用EL调用函数

    <td>${jnb:filter(entry.value.info)}</td>

    注意:

    1. EL表达式中不能继续嵌套EL表达式
    2. 定义函数的时候函数必须是静态的。
  • 相关阅读:
    speex库音频降噪(含代码)
    语音增强(降噪)之一——谱减法
    CUDA与OpenGL互操作
    二维图像的三维旋转
    迷惑很久,仅以个人想法谈谈MVC架构,希望大家多给点意见
    Less使用心得
    js实现蛇形矩阵
    H5天气查询demo(二)
    HTML5 Shim
    html5发展的里程碑事件
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3735097.html
Copyright © 2020-2023  润新知