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:we
fn:split
will split your string on any of the delimiter characters, so in your case both space and :
. The solution is to do a fn:replace
first:
<c:set var="urls" value="http://website1.com : http://website2.com"/>
<c:set var="urls" value="${fn:replace(thesis.url, ' : ', '|')}"/>
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/>:
<c:forTokens items="${urls}" delims="|" var="url">
<a href="${url}">${url}</a>
</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.