您的位置:首页 > 编程语言 > Java开发

如何定义自己的EL表达式

2009-07-18 08:06 483 查看
在定义一个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)}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息