我正在编写 JSP / JSTL,并且正在尝试遍历数据库中的多个项目。
我目前在数据库中有三列${image1}
,${image2}
和${image3}
。我正在尝试使用以下代码为他们打印信息:
<c:forEach begin="1" end="3" var="i">
${image${i}}
</c:forEach>
有什么办法可以使这项工作?
你不能像这样嵌套 EL 表达式。
只有事先知道这些变量的范围,才能实现具体的功能要求。这样,您可以在直接访问范围映射时使用大括号表示法。您可以使用<c:set>
在 EL 范围内创建由多个变量组成的新字符串变量。您可以使用例如${requestScope}
访问请求范围变量的映射。
因此,如果您确实将这些变量存储在请求范围内,那么应该这样做:
<c:forEach begin="1" end="3" var="i">
<c:set var="image" value="image${i}" />
${requestScope[image]}
</c:forEach>
对于会话范围,请改用${sessionScope}
地图。
好吧,我可以通过将嵌套表达式放在括号 () 中来创建嵌套表达式,请参见下面的示例。
#{row.Dateapproved eq null ? 'true' : (row.Appealrange > (bindings.Appealvalidation.inputValue) ? 'true' : 'false') }