我得到以下代码:
<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>
值“ tracksCD”必须与变量i串联,以便由循环创建类似这样的内容:
<p><c:out value="${tracksCD1}" /> Tracks für CD${i} hochladen</p>
<p><c:out value="${tracksCD2}" /> Tracks für CD${i} hochladen</p>
等等。
有没有一种方法可以将$ {tracksCD}和$ {i}结合起来以动态获得$ {tracksCD1}等?
提前致谢。
最佳答案
如果知道数据的范围,则可以在范围映射${requestScope}
,${sessionScope}
或${applicationScope}
中访问它。例如。在请求范围内时:
<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>
但是,您有一个非常讨厌的设计错误。而是将它们收集为数组或列表为
${tracksCDs}
,以便您可以执行以下操作:<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>
或者,如果
${finalDisccount}
恰好具有与数组/列表相同的大小:<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>
关于jsp - JSTL如何连接值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10268481/