在定义一个EL表达式前,首先你要考虑你需要怎要的功能,毕竟你是需要一个功能才要定义一个EL,因为我想使用一个函数(以前c有的,但是在java中我找不到),比如2的5次幂(2*2*2*2*2),
首先给你的方法起一个名字,要有特点,使人容易记住,我想了一个:abc
1.定义一个类ELFunction
1)在里面定义一个静态的方法,方法名字叫abc,返回值为Integer ,有两个Integer类型的参数
public static Integer abc(Integer a,Integer b){
Integer result = 1;
for(int i = 0; i < b ; i++){
result = result * a;
}
return result;
}
2.定义xml文件
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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 web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version><!--版本-->
<short-name>el-funcitontwo</short-name><!--函数标记库名称-->
<function>
<!--你在jsp中使用EL标记的名字-->
<name>abc</name>
<!-- 这个东西是那个类实现的-->
<function-class>el.ELFunctiontwo</function-class>
<!-- 这个方法的返回值,名字,从参数类型,注意:参数只有类型没有变量-->
<function-signature>
java.lang.Integer abc(java.lang.Integer, java.lang.Integer)
</function-signature>
</function>
</taglib>
3.在jsp文件中使用自己定义的EL
因为是自己定义的,所以要引入并且给个前缀prefix
<%@ taglib uri="/WEB-INF/el-functiontwo.tld" prefix="f"%>
<%session.setAttribute("a",12);session.setAttribute("b",13);%>
${f:abc(3,3)}
如何定义自己的EL表达式
最新推荐文章于 2022-11-12 08:28:57 发布