自定义EL表达式方法

自定义一个EL方法使得将获取到的参数int类型转换为Integer类型

1.首先编写java方法类

public class ELFuncUtil {
	/**
	 * @param key
	 * @return将int类型转换成integer
	 */
	public static Integer getInt(int key) {
		return Integer.valueOf(key);
	}
}

2.其次在项目的WEN-INF目录下面创建一个MyEl.tld文件 文件类型为tld文件

<?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>my</short-name>  
    <!-- 定义第一个函数 -->
    <function>  
        <!-- 定义第一个函数:reverse -->
        <name>getInt</name>  
        <!-- 定义函数处理类 -->  
        <function-class>util.ELFuncUtil</function-class>  
        <!-- 定义函数的对应方法 -->  
        <function-signature>  
            java.lang.Integer getInt(int)  
        </function-signature>  
    </function> 
</taglib>

3.调用的时候需要在头部引入

<%@taglib prefix="my" uri="/WEB-INF/MyEL.tld"%>

之所以自定义这个方法时因为在使用HashMap的时候如果使用的时HashMap<Integer,List<Student>> map

在页面获取map第一个的list的时候,如果使用${map[0]}是获取不到的,因为EL表达式对这个有严格的检查

不会将int自动转换为Integer 说以需要使用自定义的EL方法 将Int类型转换为Integer ,${map[my:getInt(0)]}这样就可以获取到了

方法的调用使用 冒号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值