3 Stimmen

JSTL wie man Werte verkettet?

Ich habe den folgenden Code erhalten:

<c:forEach var="i" begin="1" end="${finalDisccount}">
                <p><c:out value="${tracksCD}" /> Tracks für CD${i} hochladen</p>
                <p><input id="filename_${i}" type="file" name="filename_${i}" size="50" multiple="multiple" required="required"/></p>
</c:forEach>

Der Wert "tracksCD" muss mit der Variablen i verkettet werden, so dass durch die Schleife so etwas wie das hier entsteht:

<p><c:out value="${tracksCD1}" /> Tracks für CD${i} hochladen</p>
<p><c:out value="${tracksCD2}" /> Tracks für CD${i} hochladen</p>

Und so weiter. Gibt es eine Möglichkeit, ${tracksCD} und ${i} zu kombinieren, um ${tracksCD1} und so weiter dynamisch zu erhalten?

Vielen Dank im Voraus.

0voto

BalusC Punkte 1034465

Wenn Sie den Bereich der Daten kennen, können Sie einfach in der Bereichsübersicht darauf zugreifen ${requestScope} , ${sessionScope} o ${applicationScope} . Z.B. wenn es im Bereich der Anfrage liegt:

<c:forEach var="i" begin="1" end="${finalDisccount}">
    <c:set var="tracksCDKey" value="${tracksCD}${i}" />
    <p><c:out value="${requestScope[tracksCDKey]}" /> Tracks für CD${i} hochladen</p>
    <p><input id="filename_${i}" type="file" name="filename_${i}" size="50" multiple="multiple" required="required"/></p>
</c:forEach>

Allerdings haben Sie da einen ziemlich üblen Designfehler. Sammeln Sie sie lieber in einem Array oder einer Liste als ${tracksCDs} so dass Sie wie folgt vorgehen können:

<c:forEach var="i" begin="1" end="${finalDisccount}">
    <p><c:out value="${tracksCDs[i - 1]}" /> Tracks für CD${i} hochladen</p>
    <p><input id="filename_${i}" type="file" name="filename_${i}" size="50" multiple="multiple" required="required"/></p>
</c:forEach>

Oder vielleicht, wenn die ${finalDisccount} zufällig die gleiche Größe wie das Array/die Liste haben:

<c:forEach items="${tracksCDs}" var="${tracksCD}" varStatus="loop">
    <p><c:out value="${tracksCD}" /> Tracks für CD${loop.count} hochladen</p>
    <p><input id="filename_${loop.count}" type="file" name="filename_${loop.count}" size="50" multiple="multiple" required="required"/></p>
</c:forEach>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X