I wanted to split a given string using jstl 1.2
eg:
Bean thesis.url contains "http:website1.com : http:website2.com"
which needs to be splited into
http:website1.com
http:website2.com
<c:set var="url">
<c:out value="${thesis.url}" />
</c:set>
<c:set var="offUrls" value="${fn:split(url,' : ')}" />
<c:forEach items="${offUrls}" var="link">
<a href=" <c:out value='${link}' />" target="_blank">
<c:out value="${link}" />
</a>
</c:forEach>
But the output is not want I wanted which is
http
website1.com
http
website2.com
I tried another way, and its dint work either.
<c:set var="_split" value= " : "/>
<c:set var="offUrls" value="${fn:split(url,_split)}" />
fn:splitwill split your string on any of the delimiter characters, so in your case both space and:. The solution is to do afn:replacefirst:Make sure to replace the separator with a character that is not present in your string, or else you will run into the same problem. Now you can use
fn:split(urls, '|'), but it would be easier to use<c:forTokens/>:A better solution would be to simply do the work at the back end of your application and pass a list of strings to the front end.