我自定义了一个EL函数但是怎么配置都不能使用请教高手详细解释下
1,自定义实现功能的JAVA类需要放在WEB项目的特定文件夹下嘛?
2,对自定义函数的tld文件在WEB项目中该如何配置(希望能说得详细点)
3,WEB项目中的WEB.XML文件该如何配置
我急需要帮助急!!!!!!!!希望大侠们帮忙!!!!!!

解决方案 »

  1.   

    需要在web-inf下建立个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>len</short-name>   
       8.      <function>   
       9.          <description>你的方法的描述</description><!-- 对这个EL方法的描述   -->   
      10.          <name>你的方法的名字</name><!-- 调用EL方法的名称 -->   
      11.          <function-class>方法所在类</function-class>   
      12.          <function-signature>   
      13.             int getLen(java.lang.String)   
      14.          </function-signature>   
      15.          <example>${len:getLen(str)}</example><!-- 例如 -->   
      16.      </function>   
      

  2.   

    对这个东西你不用记录,你只需要知道,jstl的jar包里el表达式的定义函数。你这样找:找到jstl包(系统的j2ee或 javaee里边都带有),打开他,在meta-inf目录下你会找到有一个文件:fn.tld,打开该文件,你把这个文件 的头文件信息copy出来,<?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>JSTL 1.1 functions library</description><!--这里是对该文件的描述信息,可以更改-->
      <display-name>JSTL functions</display-name><!--显示 名字,可以更改-->
      <tlib-version>1.1</tlib-version><!--版本,不要动-->
      <short-name>fn</short-name><!--简称,根据你自己的需要更改-->
      <uri>http://java.sun.com/jsp/jstl/functions</uri><!--访问的uri,必须保证唯一,如果在你把这个自定义表达式弄为jar工具包时,就要使用该uri来进行导入-->然后再copy一个<function></function>子项,复制到你的meta-inf目录下的tld文件中。<function>
        <description>
       描述信息,可以不写
        </description>
    <!--使用的名字,在该文件中要保持唯一-->    <name>contains</name>
    <!-- el表达式要使用的类名,根据知己的实际情况更改 -->
        <function-class>org.apache.taglibs.standard.functions.Functions</function-class>
    <!--使用的方法名,及返回类型。boolean 这里是方法的返回类型(包名+类名,如:java.lang.String),contains为方法的名字,括号里是方法的参数类型列表,-->
        <function-signature>boolean functionName(java.lang.String, java.lang.String)</function-signature>    <example>
    <!--使用例子,可 以不写-->
          &lt;c:if test="${fn:contains(name, searchString)}">
        </example>
      </function>
    在jsp页面中使用:<%@taglib prefix="myel" uri="/META-INF/myel.tld"%>${myel:functionName("string1","string2")}