${zl:format("this a [0] ,so you can [1] it ","pig","fff") }
我想写一个StringFormat 的函数,讲要格式化的字符通过数据或者可变参数传递进去
如果直接传数组,因为{},和<%= >这些符号不能出现在el中,
用可变参数,会报这个异常
The class java.lang.String... value specified in the method signature in TLD for the function zl:format cannot be found. java.lang.String... value
但是我的TLD文件写的是:
<function>
<name>format</name>
<function-class>name.lei.web.tags.StringFormat</function-class>
<function-signature>java.lang.String format(java.lang.String, java.lang.String... )</function-signature>
</function>
要是改为
<function>
<name>format</name>
<function-class>name.lei.web.tags.StringFormat</function-class>
<function-signature>java.lang.String format(java.lang.String, java.lang.String[] )</function-signature>
</function>
会有这个参数错误异常 :
javax.el.ELException: Function 'zl:format' specifies 2 params, but 3 were declared
再看方法声明 public static String format(String basal, String... ){
第二个参数改为数组没用
类包名:package name.lei.web.tags;
感觉还是tld文件有问题
请问如何解决这个问题
该贴已经同步到 张磊的微博 |
|