Ich habe 2 Datensätze auf meiner JSP-Seite, einer ist ein array list
und ein anderes ist json data
. Jetzt möchte ich sowohl den Datensatz analysieren als auch meine eigenen Dropdowns erstellen.
Hier ist das Beispiel Array List
genannt json_obj
Daten
["ABC-1","ABC-2","ABC-3","ABC-4","ABC-5","ABC-6"]
Ich habe diesen Code ausprobiert, aber er funktioniert nicht
<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>
Leere Optionen erhalten
<select>
<option value="all_qns">All</option>
<option></option>
<option></option>
<option></option>
<option></option>
<option></option>
<option></option>
</select>
Auch ich habe dieses Stück json data
genannt json_obj_m
{"a":"1050","b":"1079","c":"1073","d":"1074"}
Und ich habe das versucht:
<c:forEach items="${json_obj_m}" var="met">
<option value="${met.key}">${met.value}</option>
</c:forEach>
Aber nicht wieder arbeiten Fehler bekommen, diese Feder unterstützt nicht key
.
Kann mich jemand dahin führen, wo ich Fehler mache, sehr neu in Java / Spring. Danke im Voraus.
Antworten:
1 für die Antwort № 1Ihre Nutzung von JSTP foreach
ist falsch: Sie erhalten den Wert in strategy
und versuchen, (schlecht) zu verwenden strategyLoop
Welches ist der Status. Sie sollten einfach schreiben:
<option>${strategy}</option>
Der Status hilft beim Zählen der Iterationen, die Sie verwenden ${strategyLoop.index}
oder ${strategyLoop.count}
:
strategyLoop.index
beginnt bei 0strategyLoop.count
beginnt bei 1
1 für die Antwort № 2
Verwenden Sie zum Durchlaufen der Liste diesen Code:
<select id="someId">
<option value="all_qns">All</option>
<c:forEach var="strategy" items="${json_obj}" >
<option value="${strategy}">${strategy}</option>
</c:forEach>
</select>
Und wenn Sie JSON über einen Ajax-Aufruf erhalten, können Sie Folgendes verwenden (per JavaScript):
$.each(data, function(key, value) {
$("#someId").append("<option value="+key+"option>"+value+"</option>");
});
});