替代fn:startsWith(var,'value') - jsp

时间:2011-01-19 17:33:49

标签: java jsp jstl el

我的应用程序中有这段代码:

<c:when test="${fn:startsWith(var,'value')}">
    <c:set var="other_var" value="x"></c:set>
</c:when>

但我发现我不允许使用1.0以上标准 taglib的任何版本。

我有什么好的选择在这里使用吗?

1 个答案:

答案 0 :(得分:4)

自己创建EL功能。

package com.example;

public final class Functions {
     private Functions() {}

     public static boolean startsWith(String string, String pattern) {
         return string.startsWith(pattern);
     }
}

创建/WEB-INF/functions.tld,如下所示:

<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib xmlns="http://java.sun.com/JSP/TagLibraryDescriptor">
    <display-name>Custom Functions</display-name>    
    <tlib-version>1.0</tlib-version>
    <uri>http://example.com/functions</uri>

    <function>
        <name>startsWith</name>
        <function-class>com.example.Functions</function-class>
        <function-signature>boolean startsWith(java.lang.String, java.lang.String)</function-signature>
    </function>
</taglib>

按如下方式使用:

<%@taglib uri="http://example.com/functions" prefix="f" %>

<c:if test="${f:startsWith(var, 'value')}">
    ...
</c:if>