JSTL拆分保持空白或空字符串

时间:2017-07-12 14:59:10

标签: split jstl retain

我试图在一个包含'|'的字符串上使用JSTL split作为分隔符。但是,如果两者之间没有值,则拆分在最终数组中省略。

例如:abc | def || jkl

我希望数组包含(4项) “ABC; “高清” “” 'JKL'

但是,分割会跳过空值,我只得到3个项目。

我知道在js中我们可以添加-1参数来避免这个问题。我们如何在JSTL中解决这个问题?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

根据the specificationfn:split内部使用StringTokenizer,因此行为与StringTokenizer相同。

所以我认为只有JSTL很难实现。一种可能的解决方案是使用java.lang.String.split()。例如,以下代码:

<% request.setAttribute("strings", "abc|def||jkl".split("\\|")); %>
<c:forEach var="string" items="${strings}" varStatus="status">
<c:out value="${status.index}"/>:<c:out value="${string}"/>
</c:forEach>

打印出来:

0:abc 1:def 2: 3:jkl