是否可以将TLD映射到以下功能:
public static <T> T[] toArray(T... stuff) { return stuff; }
这样我就可以做到:
<c:forEach items="${my:toArray('a', 'b', 'c')}"...
我尝试以下<function-signature>小号
<function-signature>
java.lang.Object toArray( java.lang.Object... ) java.lang.Object[] toArray( java.lang.Object[] )
和其他人,但似乎无济于事。
不幸的是这是不可能的。EL解析器会立即将函数中的逗号解释为单独的参数,而无需检查是否有采用varargs的方法。最好的选择是使用JSTL fn:split()。
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 中将是一个不错的功能。