EL表达式-自定义函数

表达式语言除了可以使用基本的运算符外,还可以使用自定义函数。通过使用自定义函数,加强了表达式语言的功能。 

EL表达式函数,主要功能是完成对数据的修改,统一化格式; 

开发步骤 

    1.开发函数处理类,处理类就是普通的类;每个函数对应类中的一个静态方法; 
    2. 建立TLD文件,定义表达式函数

    3.在WEB.XML文件中配置;(可省略)

    4.在JSP页面内导入并且使用

 

案例说明

    1.开发函数处理类

Java代码   收藏代码
  1. package mytag;  
  2. /** 
  3.  * EL表达式函数处理类 
  4.  */  
  5. public class ElTag {  
  6.       
  7.     public static String reverse(String name){  
  8.         return new StringBuffer(name).reverse().toString();  
  9.     }  
  10.       
  11.     public static int countChar(String text){  
  12.         return text.trim().length();  
  13.     }  
  14. }  

   

   2.创建TLD文件;

   

Java代码   收藏代码
  1. <?xml version="1.0" encoding="GBK"?>  
  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   
  5.     http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"       
  6.     version="2.0">     
  7.     <!-- 定义函数版本 -->  
  8.     <tlib-version>1.0</tlib-version>  
  9.     <!-- 定义函数名称 -->  
  10.     <short-name>el</short-name>  
  11.     <!-- 定义第一个函数 -->  
  12.     <function>  
  13.         <!-- 定义第一个函数:reverse -->  
  14.         <name>reverse</name>  
  15.         <!-- 定义函数处理类 -->  
  16.         <function-class>mytag.ElTag</function-class>  
  17.         <!-- 定义函数的对应方法 -->  
  18.         <function-signature>  
  19.             java.lang.String reverse(java.lang.String)  
  20.         </function-signature>  
  21.     </function>  
  22.       
  23.     <function>  
  24.         <name>countChar</name>  
  25.         <function-class>mytag.ElTag</function-class>  
  26.         <function-signature>  
  27.             java.lang.Integer countChar(java.lang.String)  
  28.         </function-signature>  
  29.     </function>  
  30.       
  31. </taglib>  

 3.在WEB中配置

Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.     <jsp-config>  
  7.         <taglib>  
  8.             <!-- 配置标签的引用地址 JSP页面中引用时使用-->  
  9.             <taglib-uri>/eltag</taglib-uri>  
  10.             <!-- 配置标签的TLD文件地址 -->  
  11.             <taglib-location>/WEB-INF/ElTag.tld</taglib-location>  
  12.         </taglib>  
  13.     </jsp-config>  
  14.     <welcome-file-list>  
  15.         <welcome-file>index.jsp</welcome-file>  
  16.     </welcome-file-list>  
  17. </web-app>  

 

4.JSP页面引入 并且使用

Java代码   收藏代码
  1. <%@ taglib uri="/eltag" prefix="el" %>   
  2.   
  3.   <body>  
  4.     ${el:reverse("ad") }  
  5.   </body>  
    EL表达式确实方便了我们书写界面逻辑关系,自定义标签显得尤为便捷,该方法以前没有掌握,先今看了此篇文章按照其步骤照做,感觉其实也不是很困难。希望大家也可以学习学习。
### EL表达式中使用函数的示例教程 EL(Expression Language)表达式可以通过定义自定义函数来增强其功能。这些函数可以在 JSP 页面中通过 `${}` 的形式调用,从而实现更复杂的逻辑处理。 #### 定义自定义函数 要在一个 JSP 应用程序中使用 EL 表达式自定义函数,需要完成以下几个部分: 1. **创建 Java 方法** 首先,在一个普通的 Java 类中编写所需的静态方法。该方法必须是 `public static` 类型以便于被外部调用[^3]。 ```java package com.el.code; public class FunctionsEl { /** * 计算字符串长度并返回结果 */ public static String elEncode(String input) { if (input == null || input.isEmpty()) { return ""; } return "Encoded: " + input.toUpperCase(); } } ``` 2. **配置 TLD 文件** 创建一个 `.tld` 文件(Tag Library Descriptor),用来描述自定义标签库中的函数及其签名。以下是具体的 XML 结构: ```xml <?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"> <tlib-version>1.0</tlib-version> <short-name>el</short-name> <!-- 自定义函数 --> <function> <description>Calculate and encode a given string.</description> <name>encodeString</name> <function-class>com.el.code.FunctionsEl</function-class> <function-signature>java.lang.String elEncode(java.lang.String)</function-signature> <example>${el:encodeString('hello')}</example> </function> </taglib> ``` 3. **在 JSP 中引入并使用函数** 在实际使用的 JSP 文件中,首先需要导入刚刚创建的 TagLib 描述文件。之后就可以利用 `${}` 来调用对应的函数了。 ```jsp <%@ taglib prefix="el" uri="/WEB-INF/tlds/custom-functions.tld"%> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>EL Function Example</title> </head> <body> <h1>Using Custom EL Function:</h1> Original Text: hello world<br/> Encoded Text: ${el:encodeString('hello world')} </body> </html> ``` 以上就是完整的流程说明,展示了如何从头开始构建支持 EL 函数的功能模块,并将其集成到 Web 应用之中。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值