【问题标题】:Exporting function to TLD将功能导出到 TLD
【发布时间】:2011-11-27 06:40:48
【问题描述】:

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

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 文件:

<?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[],但它只需要一个参数(一个列表,d'oh!)。我正在寻找正确的函数签名来导出具有多个参数的函数。

提前谢谢你!

【问题讨论】:

    标签: jsp taglib


    【解决方案1】:

    您应该尝试迁移到 Java EE 6。然后您可以使用新的 Unified Expression Language 并从创建自己的 taglib 的噩梦中解脱出来。

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

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      • 2022-09-25
      • 2011-12-10
      • 1970-01-01
      • 2020-02-18
      • 2017-01-22
      相关资源
      最近更新 更多