jsp - JSTL如何连接值?

标签 jsp loops jstl concatenation el

我得到了以下代码:

<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}$ 中访问它{应用范围}。例如。当它在请求范围内时:

<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/

相关文章:

java - 使用 jsp :include 的 JSP 性能

java - 抽象类中的 ModelAttribute 具有来自子类的值

mysql - 使用jsp更新数据库

java - 找到最小和第二小的数字

php - 使用PHP循环多次查询MYSQL数据库

java - 使用 EL 向下转换

javascript - 如何从 Java Controller 下载文件到 javascript

java - 从二维数组中顺序接收元素(Java)

java - 如何使用jsp和servlet创建模板

java.util.Date 来自<输入类型 ="datetime-local"/>