GDB
348
2017-08-31 16:52:49
4
661

JSTL 에서 c:foreach 문 질문



<c:forEach var="row" items="${orders_detail }" varStatus="rowstatus">
		<c:forEach var="row2" items="${select_orders}">
		<tr>
  			<td>${row2.product_name }</td>
			<td>${row2.amount }</td>
			<td>${row2.price }</td>
			<td>${row2.order_total }</td>
		</tr>
		</c:forEach>
</c:forEach>
질문 드릴것은 이중포문에서 안에있는 포문 items 값이 ${select_orders1} ${select_orders2} ${select_orders3} ... 이런식으로 첫번째 for문에 맞춰 늘어나야되는데요.
${select_orders+rowstatus.index} 이렇게 하면 오류가나고
${select_orders rowstatus.index} 이렇게 하면 오류는 안나는데 인식자체가 안되는듯.. 
혹시 items 에는 저런식으로 변수값을 줄수없을까요?



0
0
  • 답변 4

  • 모드쿠
    657
    2017-08-31 16:56:46

    리스트 안에 리스트 꺼낼꺼면,

    2번째 ITEM에 row.select_orders 이렇게 들어가야죠

    첫 foreach에서 row로 쓴다고 선언하고 엉뚱한거 호출하면 당연히...

    0
  • GDB
    348
    2017-08-31 17:19:09 작성 2017-08-31 17:22:47 수정됨

    모드쿠

    그런게 아니라 서버단에서 보내주는게 orders_detail 이랑 

    orders_detail.size()만큼에 for문 돌려서select_orders+i 값으로 orders 값을 보내주는거라서요..

    그래서 받을때 안쪽 for문에 select_orders+i값 이렇게 받아야하는데

    질문처럼 안되서 드린말씀입니다.

    그래서 자바스크립틀릿으로 쓰면


    	<%
    
    ArrayList<OrdersDTO> orders_detail = (ArrayList<OrdersDTO>)request.getAttribute("orders_detail");
    
                for (int i = 0; i < orders_detail.size(); i++) {
    
    ArrayList<OrdersDTO> select_orders =(ArrayList<OrdersDTO>) request.getAttribute("select_orders"+i);					
    
    	%>

       이런식으로 받는데 스크립틀릿 안쓰고 어떻게 받는지를 모르겠더라구요

    0
  • 모드쿠
    657
    2017-08-31 17:47:29

    foreach만 써도 싸이즈만큼 돌아요.

    사이즈 끝까지 for문 돌리라는 뜻이라고 보심 되요.

    0
  • 겨울의속삭임
    1k
    2017-08-31 17:50:02

    JSTL로 동적으로 받아오실 수는 없구요

    select_orders 들을 리스트로 만들어서 내려주세요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.