Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 321|回复: 0

[JSTL学习]学习JSP自定义EL函数

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-28 23:56:08 | 显示全部楼层 |阅读模式
    1)编写函数(Functions.java)
           package jsp2.examples.el;

    import java.util.*;

    /**
    * Defines the functions for the jsp2 example tag library.
    *
    * <p>Each function is defined as a static method.</p>
    */
    public class Functions {
         public static String reverse( String text ) {
             return new StringBuffer( text ).reverse().toString();
         }
           public static int numVowels( String text ) {
             String vowels = "aeiouAEIOU";
             int result = 0;
             for( int i = 0; i < text.length(); i++ ) {
              If( vowels.indexOf( text.charAt( i ) ) != -1 ) {
             result++;
         }
           }
           return result;
         }
           public static String caps( String text ) {
             return text.toUpperCase();
         }
    }
           所有的函数都必须是public static
           2)编写tld文件example-taglib.tld
           <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>A tag library exercising SimpleTag handlers.</description>
         <tlib-version>1.0</tlib-version>
         <short-name>SimpleTagLibrary</short-name>
         <uri>/SimpleTagLibrary</uri>
           <function>
             <description>Reverses the characters in the given String</description>
             <name>reverse</name>
             <function-class>jsp2.examples.el.Functions</function-class>
              <function-signature>java.lang.String reverse( java.lang.String )</function-signature>
      </function>
      <function>
             <description>Counts the number of vowels (a,e,i,o,u) in the given String</description>
             <name>countVowels</name>
            <function-class>jsp2.examples.el.Functions</function-class>
            <function-signature>java.lang.String numVowels( java.lang.String )</function-signature>
      </function>
      <function>
             <description>Converts the string to all caps</description>
             <name>caps</name>
             <function-class>jsp2.examples.el.Functions</function-class>
             <function-signature>java.lang.String caps( java.lang.String )</function-signature>
         </function>
           </taglib>
           3)编写web.xml文件
            
            
             -
             <
             jsp-config
             >
             
             
             
             
               -
               <
               taglib
               >
               
               
                
                
                
                
                 <
                 taglib-uri
                 >
                 http://jakarta.apache.org/tomcat/examples-taglib
                 </
                 taglib-uri
                 >
                
                
               
             
             
               
                
                
                    
                 <
                 taglib-location
                 >
                 /WEB-INF/jsp/example-taglib.tld
                 </
                 taglib-location
                 >
                
                
                
                </
                taglib
                >
                
               
             
             
             
               -
               </
               jsp-config
               >
               
             
             
            
           4)使用自定义EL函数
           <%@ taglib prefix="my" uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib"%>
    <HTML>
    <head>
         <title>JSP 2.0 Expression Language - Functions</title>
    </head>
    <body>
         <h1>JSP 2.0 Expression Language - Functions</h1>
         <hr>
         An upgrade from the JSTL expression language, the JSP 2.0 EL also
         allows for simple function invocation. Functions are defined
         by tag libraries and are implemented by a Java programmer as
         static methods.

         <blockquote>
           <u><b>Change Parameter</b></u>
           <form action="functions.jsp" method="GET">
    foo = <input type="text" name="foo" >
               <input type="submit">
           </form>
           <br>
           <code>
             <table border="1">
               <thead>
         <td><b>EL Expression</b></td>
         <td><b>Result</b></td>
    </thead>
    <tr>
         <td>$ {param["foo"]}</td>
         <td>$ {fn:escapeXml(param["foo"])} </td>
    </tr>
    <tr>
         <td>$ {my:reverse(param["foo"])}</td>
         <td>$ {my:reverse(fn:escapeXml(param["foo"]))} </td>
    </tr>
    <tr>
         <td>$ {my:reverse(my:reverse(param["foo"]))}</td>
         <td>$ {my:reverse(my:reverse(fn:escapeXml(param["foo"])))} </td>
    </tr>
    <tr>
         <td>$ {my:countVowels(param["foo"])}</td>
         <td>$ {my:countVowels(fn:escapeXml(param["foo"]))} </td>
    </tr>
    </table>
           </code>
         </blockquote>
    </body>
    </html>
          
         
       

       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/10/28/235608265.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-26 04:42 , Processed in 0.362038 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表