如何在Java Web应用程序中使用jsp中的表达式语言创建自己的函数?

时间:2014-07-10 20:20:46

标签: java el taglib

嗯,问题很清楚。

我有一个网络应用程序,在jsp文件中,例如我想要像这样掷骰子:

${rollDiceDude}

我该怎么做?

1 个答案:

答案 0 :(得分:2)

嗯,你需要做的就是拥有这个方法,它必须是公共的和静态的:

public class DiceRoller {
    public static int rollDice() {
        return new Random().nextInt(6) + 1; // Let's assume this is a regular die, not a 18 faced FRP one.. 
    }
}

您的WEB-INF文件夹中需要一个.tld文件,例如myFunctions.tld:

<?xml version="1.0" encoding="utf-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        version="2.0">

    <tlib-version>1.2</tlib-version>
    <short-name>MyFunctions</short-name>
    <uri>DiceFunctions</uri>

    <function>
        <name>rollIt</name>
        <function-class>com.tugay.julyten.DiceRoller</function-class>
        <function-signature>
            int rollDice()
        </function-signature>
    </function>

</taglib>

现在在jsp文件中,你所要做的就是:

<%@ taglib prefix="dF" uri="DiceFunctions" %> <!--This is a JSP directive btw.. -->
${dF:rollIt()} <!-- You can even pass arguments... -->

希望它有所帮助,美好的一天!

这称为EL功能......