2010-03-30 14 views
31
<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> 
    <c:set var="myVar" value="<c:out var="myVar" />" /> 
</c:forEach> 

Chcę złączyć wartości currentItem.myVar i wyjście to na końcu pętli, problemem jest to, że nie może dowiedzieć się, jak to zrobić ...Jak mogę połączyć ciąg w pętli w JSTL/JSP?

(Najlepiej nie używając Java)

Odpowiedz

47

Być może to zadziała?

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

to jest ok, z wyjątkiem pierwszej wartości jest null – qodeninja

+0

OK, dodałem czek, aby zobaczyć, czy to pierwszy raz w pętli. Czy to działa? – harto

+0

yup perfecto =] ty – qodeninja

-5

zdefiniować zmienną String używając znaczników JSP

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

następnie odwołać się do tej zmiennej w pętli jako

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

Korzystanie z Java nie jest dobrym pomysłem. Myślę, że muszę użyć JSTL – qodeninja

+0

prawie -1 dla nowego ciągu(). Co powiesz na ""? – Thilo

+0

Thilo tak, rozumiem dla nowego ciągu(). Mój błąd! –

13

Używasz JSTL 2.0, prawda? Nie musisz wstawiać <c:out/> wokół wszystkich zmiennych. Próbowałeś czegoś takiego?

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

Edit: Pobity przez wyżej

+0

to jest ok, z wyjątkiem pierwszej wartości jest null =/ – qodeninja

+0

pierwsza wartość null: Po prostu wykonaj inne c: ustaw poza pętli, aby zainicjować myVar. – Thilo

+0

Następnie może owinąć tag zestawu w jeśli? ...? –

0

Czy JSTL na join(), czego szukałeś?

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