使用 JSTL 为 :each 正确创建 javascript 数组

Creating javascript array correctly using JSTL for:each

本文关键字:创建 javascript 数组 each JSTL 使用      更新时间:2023-09-26

我正在尝试根据来自servlet的数据创建一个数组对象,因为尝试使用Javascript变量进行c:if是无效的。会话变量"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"
     } 
    ]  ;                            

如果这很好,那么我在语法上错了什么来做到这一点。

再次感谢

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