自定义一个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)]}这样就可以获取到了
方法的调用使用 冒号