【发布时间】:2011-05-12 11:55:37
【问题描述】:
如何使用 JSTL 遍历字符串中的每个字符?
【问题讨论】:
如何使用 JSTL 遍历字符串中的每个字符?
【问题讨论】:
巧妙地使用fn:substring() 就可以了
<c:forEach var="i" begin="0" end="${fn:length(str)}" step="1">
<c:out value="${fn:substring(str, i, i + 1)}" />
</c:forEach>
【讨论】:
迟到了,但 EL 2.2 允许调用实例方法(更多信息请参见:https://stackoverflow.com/a/7122669/2047962)。这意味着您可以将 Jigar Joshi 的答案缩短几个字符:
<c:forEach var="i" begin="0" end="${fn:length(str)}" step="1">
<c:out value="${str.charAt(i)}" />
</c:forEach>
我只是建议这样做,因为它更明显你的代码在做什么。
【讨论】:
我认为你不能用 JSTL 的 forEach 做到这一点。您需要编写自己的标签或 EL 函数。以下是您如何编写自定义标签的示例代码: http://www.java2s.com/Tutorial/Java/0360__JSP/CustomTagSupport.htm
【讨论】: