我有一个用例,其中会给我一个字符串,该字符串的单词使用:分隔,我需要将它们分成多个标记并以空格作为分隔符进行重构。
我正在JSP中尝试以下操作:

<c:forTokens var="word" delims=":" items= "Amit:Kumar:Pandit"    varStatus="iterateor">
${word}
</c:forTokens>

最佳答案

您可以使用JSTL替换功能

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:set var="string1" value="Amit:Kumar:Pandit"/>
<c:set var="word" value="${fn:replace(string1,':', ' ')}" />
${word}


关于评论已更新

如果只想输出,则省略第一个就可以依靠迭代器变量,像这样

<c:forTokens var="word" delims=":" items= "Amit:Kumar:Pandit"    varStatus="iterator">
     <c:if test="${not iterator.first}">
        ${word} <br/>
    </c:if>
</c:forTokens>


如果要存储到新变量,请再次省略第一个变量,您应该执行以下操作

<c:forTokens var="word" delims=":" items= "Amit:Kumar:Pandit"    varStatus="iterator">
    <c:set var="newArray" value="${iterator.index == 1 ? '' : newArray} ${word}" />
</c:forTokens>

${newArray}

关于java - 来自<c:forTokens>的 token 串联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28214977/

10-11 14:27