Правильное создание массива JavaScript с использованием JSTL для: каждого

Я пытаюсь создать объект массива на основе данных, которые пришли из сервлета с момента попытки c: если с переменной Javascript был недействительным. Переменная сеанса preeditList представляет собой массив из 3 полей. Вот следующий массив в моей JSP:

  var checkedArray = 
      [
        <c:forEach items="${preeditList}" var="preeditList" varStatus="status">  
           {"schedulekey": '${preeditList.getCHK_SCHEDULE_NUMBER()}',
            "contractkey": '${preeditList.getCHK_CONTRACT_YEAR()}',
            "prevStatus": '${preeditList.getCHK_STATUS()}' 
           }
           <c:if test="${!status.last}">    
           ,    
          </c:if>  
       </c:forEach>  
     ]  ;

Это дает мне много синтаксических ошибок, говорящих, что ожидается запятая. Прежде всего, массив должен выглядеть примерно так или полностью облажаться:

 var checkArray = [
    {
     "schedulekey": "43080",
     "contractkey": "2016",
     "prevStatus": "RP"
     },
    {
     "schedulekey": "43070",
     "contractkey": "2016",
     "prevStatus": "CP"
     } 
    ]  ;                            

Если это нормально, тогда я ошибаюсь в синтаксисе, чтобы это осуществить.

еще раз спасибо

1 ответ

Решение
var countries = [
<c:forEach items="${countryList}" var="country" varStatus="status">  
    {country: '${country.name}',
    provinces : [ 
        <c:forEach items="${country.provinces}" var="province" varStatus="provinceStatus">  
           '${province.name}'
           <c:if test="${!provinceStatus.last}">    
             ,    
           </c:if>   
        </c:forEach>  
    ]}
    <c:if test="${!status.last}">    
      ,    
    </c:if>  
    </c:forEach>  
];

Другой путь:

var countries = new Array();
<c:forEach items="${countryList}" var="country" varStatus="status"> 
    countryDetails = new Object();
    countryDetails.country = ${country.name}; 
    var provinces = new Array();

        <c:forEach items="${country.provinces}" var="province" varStatus="provinceStatus"> 
           provinces.push(${province.name});
        </c:forEach> 
    countryDetails.provinces = provinces;
    countries.push(countryDetails);
</c:forEach> 

Выход:

var countries = [
  {country:"USA",
  provinces: [
    "Ohio",
    "New York",
    "California"
  ]},
  {country:"Canada",
  provinces: [
    "Ontario",
    "Northern Territory",
    "Sascetchewan"
  ]},
]

Я нашел решение проблем..... JSTL JS

Другие вопросы по тегам