使用 JSTL for:each 正确创建 javascript 数组
Creating javascript array correctly using JSTL for:each
我正在尝试基于来自 servlet 的数据创建一个数组对象,因为尝试 c:if 使用 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"
}
] ;
如果这没问题,那么我的语法错误是为了解决这个问题。
再次感谢
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 To JS
我正在尝试基于来自 servlet 的数据创建一个数组对象,因为尝试 c:if 使用 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"
}
] ;
如果这没问题,那么我的语法错误是为了解决这个问题。
再次感谢
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 To JS