首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将函数导出到TLD

将函数导出到TLD
EN

Stack Overflow用户
提问于 2011-11-27 14:40:48
回答 1查看 2.7K关注 0票数 4

我想将此函数导出到我的custom-functions.tld文件中:

代码语言:javascript
复制
package com.site.vo;

public class Utils {
    public static String concat(String... values) {
        String out = "";

        for (String value : values) {
            out.concat(value);
        }

        return out;
    }
}

这是我的custom-functions-tld文件:

代码语言:javascript
复制
<?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>2.0</tlib-version>
<uri>/WEB-INF/custom-functions.tld</uri>
 <function>
  <description>Concatenate strings</description>
  <name>concat</name>
  <function-class>com.site.vo.Utils</function-class>
  <function-signature>java.lang.String concat(java.lang.String...)</function-signature>
 </function>
</taglib>

function-signature没有工作,我得到了以下异常:

org.apache.jasper.JasperException: The class java.lang.String... specified in the method signature in TLD for the function f:concat cannot be found. java.lang.String...

尝试过java.lang.String[],但它只需要一个参数(一个列表,哦!)。我正在寻找正确的函数签名来导出具有多个参数的函数。

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2011-11-27 14:49:50

您应该尝试迁移到JavaEE6。然后,您可以使用新的Unified Expression Language,从而避免创建自己的标记库的噩梦。

它允许您在定义的bean上直接调用方法。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8284073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档