java – 在标记库描述符中使用varargs
作者:互联网
是否可以将TLD映射到以下函数:
public static <T> T[] toArray(T... stuff) {
return stuff;
}
所以我可以这样做:
<c:forEach items="${my:toArray('a', 'b', 'c')}"...
我尝试了以下< function-signature> s
java.lang.Object toArray( java.lang.Object... )
java.lang.Object[] toArray( java.lang.Object[] )
而其他人似乎没什么用.
解决方法:
不幸的是,这是不可能的. EL解析器立即将函数中的逗号解释为单独的参数,而不检查是否有任何方法采用varargs.你最好的选择是使用JSTL fn:split()代替.
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<c:forEach items="${fn:split('a,b,c', ',')}" var="item">
${item}<br/>
</c:forEach>
然而,它在EL中可能是一个不错的feature,虽然实现它会非常复杂.
标签:taglib,java,jsp,el,variadic-functions 来源: https://codeday.me/bug/20191008/1870091.html