How can I concatenate a string within a loop in JSTL/JSP?

<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> <c:set var="myVar" value="<c:out var="myVar" />" /> </c:forEach> 

I want to concatenate the values of currentItem.myVar and output it at the end of the loop, problem is I can't figure out how to do this...

(Preferably not using Java)

4 Answers

Perhaps this will work?

<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> <c:set var="myVar" value="${stat.first ? '' : myVar} ${currentItem}" /> </c:forEach> 
3

You're using JSTL 2.0 right? You don't need to put <c:out/> around all variables. Have you tried something like this?

<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> <c:set var="myVar" value="${myVar}${currentItem}" /> </c:forEach> 

Edit: Beaten by the above

5

Is JSTL's join(), what you searched for?

<c:set var="myVar" value="${fn:join(myParams.items, ' ')}" /> 

define a String variable using the JSP tags

<%! String test = new String(); %> 

then refer to that variable in your loop as

<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> test+= whaterver_value </c:forEach> 
3

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like