我正在编写JSP/JSTL,我正在尝试迭代数据库中的几个项目.
我目前在数据库中有三列${image1}
,${image2}
和${image3}
.我正在尝试使用以下代码为它们打印出信息:
<c:forEach begin="1" end="3" var="i">
${image${i}}
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让我的工作吗?
你不能像这样嵌套EL表达式.
只有事先知道了这些变量的范围,才能实现具体的功能要求.这样,您可以在直接访问范围映射时使用括号表示法.您可以使用<c:set>
在由多个变量组成的EL范围中创建新的字符串变量.您可以使用eg ${requestScope}
访问请求范围变量的映射.
因此,如果您确实将这些变量存储在请求范围中,那么这应该:
<c:forEach begin="1" end="3" var="i">
<c:set var="image" value="image${i}" />
${requestScope[image]}
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
对于会话范围,请改用${sessionScope}
地图.