zoukankan      html  css  js  c++  java
  • 编写EL函数

    1.建立java类的静态函数

    package chapter4;
    
    public class ELFun {
    	public static String processStr(String s){
    		s = s.replaceAll("<", "&lt");
    		s = s.replaceAll(">", "&gt");
    		s = s.replaceAll(" ", " ");
    		return s;
    	}
    }
    

     在WEB-INF目录中建立一个tld目录,然后再目录中建立一个elfun.tld文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
        version="2.1">
        <tlib-version>1.0</tlib-version>
        <jsp-version>2.1</jsp-version>
        <description>用于转换特殊字符</description>
        <uri>myelfun</uri>  <!-- 定义URI -->
        <function>
            <name>ps</name>
            <function-class>chapter4.ELFun</function-class>
            <function-signature>
                java.lang.String processStr(java.lang.String)
            </function-signature>
        </function>
    </taglib>

    修改web.xml文件,添加如下代码

    <jsp-config>
          <taglib>
              <taglib-uri>/WEB-INF/tld/elfun.tld</taglib-uri>
              <taglib-location>/WEB-INF/tld/elfun.tld</taglib-location>
          </taglib>
      </jsp-config>

    建立一个elfun.jsp文件,需要在声明中导入tld文件

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib uri="/WEB-INF/tld/elfun.tld" prefix="elfun" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
    
      </head>
      
    
      <body>
      <input type='text' name='text'/>
        ${elfun:ps("<input type='text' name='text'/>") }
      </body>
    </html>

     除了使用tld文件的路径引用tld文件外,还可以使用在tld文件中定义的url引用tld文件

    例如:<%@ taglib uri="elfun" prefix="elfun" %>

    但为了避免冲突,url在外发布时最好带上域名,例如http://www.sun.com/myelfun

    如果使用路径引用tld文件,tld文件可以放到web工程中的任何目录下,并且无需重新服务器即可生效。

    如果使用url来引用tld文件,tld文件必须放到web-inf目录中或web-inf目录的子文件中,包括lib和classes目录,且必须重新服务器或重新发布web工程。

  • 相关阅读:
    编写测试用例的七种方法
    字节输出流OutputStream,字节输入流InputStream。。。字符输入流Reader, 字符输出流Writer
    项目分层(分包)
    File,,, 文件和文件夹的创建删除,,, listFiles()方法介绍,,,文件过滤器,,, 递归
    登录,注册
    分层分包增删改查
    预处理对象,增删改查
    异常
    斗地主,,,Java中final、finalize()、finally三者的区别
    静态导入,,,可变参数,,, Collections集合工具类
  • 原文地址:https://www.cnblogs.com/tuifeideyouran/p/4366687.html
Copyright © 2011-2022 走看看