我的jsp页面中有两组数据,一组是array list,另一组是json data。现在我想解析数据集并创建我自己的下拉列表。
以下是名为json_obj Array List的示例数据
["ABC-1","ABC-2","ABC-3","ABC-4","ABC-5","ABC-6"]
我试过这段代码,但不起作用
<select>
<option value="all_qns">All</option>
<c:forEach var="strategy" items="${json_obj}" varStatus="strategyLoop">
<option><c:out value="${strategyLoop[index]}"/></option>
</c:forEach>
</select>获取空白选项
<select>
<option value="all_qns">All</option>
<option></option>
<option></option>
<option></option>
<option></option>
<option></option>
<option></option>
</select>另外,我还有一段名为json_obj_m的json data
{"a":"1050","b":"1079","c":"1073","d":"1074"}我a=have试了一下:
<c:forEach items="${json_obj_m}" var="met">
<option value="${met.key}">${met.value}</option>
</c:forEach>但是不能再工作了,出错了,那个spring不支持key。
有没有人能告诉我哪里做错了,这是Java/Spring的新手。提前谢谢。
发布于 2014-07-15 22:34:34
您对JSTP foreach的使用是不正确的:您在strategy中获取了值,并尝试使用(糟糕的) strategyLoop,这就是状态。你应该简单地写:
<option>${strategy}</option>状态有助于计算迭代次数,您可以使用${strategyLoop.index}或${strategyLoop.count}
strategyLoop.index开始于0strategyLoop.count开始于1发布于 2014-07-15 23:20:13
要迭代列表,请使用以下代码:
<select id="someId">
<option value="all_qns">All</option>
<c:forEach var="strategy" items="${json_obj}" >
<option value="${strategy}">${strategy}</option>
</c:forEach>
</select>如果你通过Ajax call获得JSON,你可以使用这个(通过JavaScript):
$.each(data, function(key, value) {
$('#someId').append("<option value="+key+"option>"+value+"</option>");
});
});https://stackoverflow.com/questions/24760488
复制相似问题