在EL中调用静态函数

来源:互联网 发布:c语言制表符是什么 编辑:程序博客网 时间:2024/06/07 15:45
自定义EL函数 (其实调用普通类的静态方法)
    作用:用EL也能使用java类中的函数!不用在jsp中再出现java代码!
    开始:     
     第1步:创建你的类:
             package com.util;

             public class ELFunction {
             public static  String toUpString (String str){
                                    return str.toUpperCase();
                     }
               }
   第2步:
      a.创建tld文件:在WEB-INF目录下直接创建一个你的tld文件(用来包含所有类的方法)MyFunction.tld
    

     b. 配置此tld文件:

     <?xml version="1.0" encoding="UTF-8"?>
   第3步 配置WEB-INF.xml:(注意:若tld文件存在于WEN-INF文件根目录下则无需第3步)
       <!-- 若tld文件直接在WEB-INF的根目录下,可不用写 -->
 <jsp-config><!-- 告知应用,与tld中的uri的对应 -->
     <taglib>
         <taglib-uri>lsq</taglib-uri><!-- 与tld中uri相对应 -->
         <taglib-location>/WEB-INF/MyFunction.tld</taglib-location><!-- tld文件的路径 -->
     </taglib>
 </jsp-config>
   <description>Use the java  static Function</description><!-- 描述性文件,可省略 -->
    <tlib-version>1.0</tlib-version><!-- 我文件的版本号 -->
    <short-name>MyFunction</short-name><!-- 最好跟此文件名一样 -->
    <uri>lsq</uri><!-- 命名可任意 -->   
     <function><!-- 定义的函数 -->
        <description>Reverses the characters in the given String</description><!--描述函数的功能,可省略-->
        <name>a_To_A </name><!-- 这个函数名,可随意 -->
        <function-class>com.util.ELFunction</function-class><!--这个函数所属的类全名-->
        <!-- 签名,是方法的返回值 。java.lang.String toUpString 是返回值,java.lang.String 是函数参数-->
        <function-signature>java.lang.String toUpString( java.lang.String )</function-signature>
    </function>
</taglib>



第3步 配置WEB-INF.xml:(注意:若tld文件存在于WEN-INF文件根目录下则无需第3步)
       <!-- 若tld文件直接在WEB-INF的根目录下,可不用写 -->
 <jsp-config><!-- 告知应用,与tld中的uri的对应 -->
     <taglib>
         <taglib-uri>lsq</taglib-uri><!-- 与tld中uri相对应 -->
         <taglib-location>/WEB-INF/MyFunction.tld</taglib-location><!-- tld文件的路径 -->
     </taglib>
 </jsp-config>

          第4步:在jsp页面中使用:
     <%@ page language="java" import="java.util.*" pageEncoding="utf8" %>

<%@    taglib uri="lsq" prefix="MyFunction" %><%-- 与tld文件中uri一样 ,prefix对应 MyFunction中的<short-name>  --%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EL中使用函数</title>
  </head>
 <body>
 
     <%
         pageContext.setAttribute("p","aaabbbdddeeefffggghhh");
         
      %>
     ${MyFunction:a_To_A(p)}
     
  </body>
</html>




      

部署后输出:




0 0
原创粉丝点击