2010-03-30 45 views

Trả lời

47

Có lẽ điều này sẽ hoạt động?

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

điều này là ok, ngoại trừ giá trị đầu tiên là null – qodeninja

+0

OK, tôi đã thêm một kiểm tra để xem đây có phải là lần đầu tiên thông qua vòng lặp hay không. Điều đó có hiệu quả không? – harto

+0

yup perfecto =] ty – qodeninja

-5

định nghĩa một biến string sử dụng các thẻ JSP

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

sau đó đề cập đến biến trong vòng lặp của bạn như

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

Sử dụng Java không phải là cách để đi với điều này, tôi nghĩ rằng tôi cần phải sử dụng JSTL – qodeninja

+0

gần như -1 cho chuỗi mới(). Làm thế nào về ""? – Thilo

+0

Thilo yeah, tôi hiểu cho String mới(). Lỗi của tôi! –

13

Bạn đang sử dụng JSTL 2.0 phải không? Bạn không cần phải đặt <c:out/> xung quanh tất cả các biến. Bạn đã thử một cái gì đó như thế này?

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

Sửa: bị đánh đập bởi trên

+0

điều này là ok, ngoại trừ giá trị đầu tiên là null =/ – qodeninja

+0

giá trị đầu tiên null: Chỉ cần thực hiện một c: đặt ngoài vòng lặp để khởi tạo myVar. – Thilo

+0

Sau đó, có lẽ quấn thẻ thiết lập trong một nếu? ...? –

0

là JSTL của join(), những gì bạn tìm kiếm?

<c:set var="myVar" value="${fn:join(myParams.items, ' ')}" /> 
Các vấn đề liên quan