2017-05-16 2 views
0

저는 봄과 JSP 코딩이 처음입니다. 나는 자바 스크립트를 사용하는 스프링 컨트롤러에서 내 JSP로 전달 된 객체 배열을 반복적으로 처리하려고 시도하고있다. 다음 html 코드는 모델이 스프링 컨트롤러에서 jsp 뷰로 전달되는 JSP에서 완벽하게 작동합니다.JavaScript를 사용하여 봄 MVC에서 객체를 반복하는 데 문제가 있습니다.

<c:forEach items="${model.dataBaseManager.dataBases.get(0).institutionManager.institutions}" var="prod"> 
     <c:out value="${prod.name}"/> <i><br><br> 
</c:forEach> 

그러나이 배열은 javascript가 아닌 html로 반복해야합니다. 이 내가 시도 것입니다 :

for (var x = 0; x < 10; x++){ 
      alert("${model.dataBaseManager.dataBases.get(0).institutionManager.institutions.get(x).name}"); 
    }; 

그러나 이것은 단지 x 값이 색인을 유지하더라도 배열의 첫 번째 값에 대한 경고를 팝업 유지합니다. 같은 정확한 결과를 JSP로 전달하기 전에 JSON으로 dataBaseManager를 변환하려고했습니다. 감사합니다,

답변

0

JSTL은 서버 측입니다. 반면 JS는 클라이언트 측입니다. 경고 행은 첫 번째 요소 (예 :)에 대해서만 서버 측에서 구문 분석됩니다. 또한 여기 JS, x에는 아무런 의미가 없습니다.

이 작업을 JS에서 시도해 볼 수 있습니다.

<script> 
var prod=[];//js array 
<c:forEach items="${model.dataBaseManager.dataBases.get(0).institutionManager.institutions}" var="prod"> 
     prod.push("${prod.name}");// add each name one by one to js array 
</c:forEach> 
alert(prod.join(',')); // shows all name in one alert as csv 
</script> 
+0

빠른 질문 : for 루프 내에서 alert (x)가 제대로 작동하는 이유는 무엇입니까? 즉, for 루프 안에 alert (x)를 넣으면 10 개의 인스턴스에 x (0-9)의 다른 값이 제대로 표시됩니다. – MikeBadger

관련 문제